diff --git a/clienttest/action_login.go b/clienttest/action_login.go new file mode 100644 index 0000000..5d09847 --- /dev/null +++ b/clienttest/action_login.go @@ -0,0 +1,105 @@ +package main + +import ( + "encoding/json" + "fmt" + "math/rand" + "mongo.games.com/game/protocol/activity" + "mongo.games.com/goserver/core/timer" + "time" + + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" + + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + loginproto "mongo.games.com/game/protocol/login" + playerproto "mongo.games.com/game/protocol/player" +) + +func init() { + // 心跳 + netlib.Register(int(loginproto.GatePacketID_PACKET_SC_PONG), loginproto.SCPong{}, SCPong) + // 登录 + netlib.Register(int(loginproto.LoginPacketID_PACKET_SC_LOGIN), loginproto.SCLogin{}, SCLogin) + // 玩家信息 + netlib.Register(int(playerproto.PlayerPacketID_PACKET_SC_PLAYERDATA), playerproto.SCPlayerData{}, SCPlayerData) + + netlib.Register(int(activity.PushCoinPacketID_PACKET_SCPushCoinInfo), activity.SCPushCoinInfo{}, SCPrint) +} + +func SCPong(s *netlib.Session, packetid int, data interface{}) error { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Tracef("SCPong username:%v %v", accountID, data) + return nil +} + +func SCLogin(s *netlib.Session, packetid int, data interface{}) error { + logger.Logger.Trace("SCLogin ", data) + + msg, ok := data.(*loginproto.SCLogin) + if !ok { + return nil + } + + if msg.GetOpRetCode() != loginproto.OpResultCode_OPRC_Sucess { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Error("登录失败 ", accountID) + s.Close() + return nil + } + + csPlayerData := &playerproto.CSPlayerData{ + AccId: msg.GetAccId(), + } + pp := &model.PlayerParams{ + Platform: 1, + Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)), + City: "北京", + Logininmodel: "app", + } + d, err := json.Marshal(pp) + if err == nil { + csPlayerData.Params = proto.String(string(d)) + } + + s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PLAYERDATA), csPlayerData) + logger.Logger.Info("登录成功 ", msg.GetAccId()) + return nil +} + +func SCPlayerData(s *netlib.Session, packetid int, data interface{}) error { + logger.Logger.Trace("SCPlayerData ", data) + msg, ok := data.(*playerproto.SCPlayerData) + if !ok { + return nil + } + + if msg.GetOpRetCode() != playerproto.OpResultCode_OPRC_Sucess { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Errorf("获取玩家信息失败 %v", accountID) + s.Close() + return nil + } + + s.SetAttribute(SessionAttributeUser, msg) + + StartSessionPingTimer(s, timer.TimerActionWrapper(func(h timer.TimerHandle, ud interface{}) bool { + if !s.IsConned() { + StopSessionPingTimer(s) + return false + } + pack := &loginproto.CSPing{} + s.Send(int(loginproto.GatePacketID_PACKET_CS_PING), pack) + return true + }), nil, time.Second*time.Duration(60+rand.Int31n(100)), -1) + + s.Send(int(activity.PushCoinPacketID_PACKET_CSPushCoinInfo), &activity.CSPushCoinInfo{}) + + return nil +} + +func SCPrint(s *netlib.Session, packetid int, data interface{}) error { + logger.Logger.Info("SCPrint ", data) + return nil +} diff --git a/clienttest/config.go b/clienttest/config.go new file mode 100644 index 0000000..a90ad75 --- /dev/null +++ b/clienttest/config.go @@ -0,0 +1,35 @@ +package main + +import ( + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +var Config = &Configuration{} + +type Configuration struct { + Count int // 机器人总数 + AppId string // appID + Connects netlib.SessionConfig // 网络连接配置 +} + +func (this *Configuration) Name() string { + return "benchmark" +} + +func (this *Configuration) Init() error { + logger.Logger.Tracef("%+v", *this) + if this.Count == 0 { + this.Count = 20 + } + return nil +} + +func (this *Configuration) Close() error { + return nil +} + +func init() { + core.RegistePackage(Config) +} diff --git a/clienttest/config.yaml b/clienttest/config.yaml new file mode 100644 index 0000000..00eb74a --- /dev/null +++ b/clienttest/config.yaml @@ -0,0 +1,67 @@ +netlib: + SrvInfo: + Name: BenchmarkServer + Type: 9 + Id: 902 + AreaID: 1 + Banner: + - ================= + - benchmark server + - ================= + IoServices: [] +module: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 100 +executor: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 0 + Worker: + WorkerCnt: 8 + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 0 +timer: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 100 +signal: + SupportSignal: true +cmdline: + SupportCmdline: true +benchmark: + Count: 1 + AppId: 5c56d1644966f078bfb90c71 + Connects: + Id: 402 + Type: 4 + AreaId: 1 + Name: ClientService + Ip: 127.0.0.1 + Port: 11001 + Protocol: tcp + Path: / + MaxDone: 200 + MaxPend: 200 + MaxPacket: 65535 + MaxConn: 2000 + RcvBuff: 4096 + SndBuff: 4096 + WriteTimeout: 3600 + ReadTimeout: 3600 + SoLinger: 10 + IsInnerLink: true + NoDelay: true + SupportFragment: true + AuthKey: www.jxjy.games.cn + IsClient: true + AllowMultiConn: true + FilterChain: + - session-filter-auth + HandlerChain: + - handler-gate-session diff --git a/clienttest/connect.go b/clienttest/connect.go new file mode 100644 index 0000000..a580173 --- /dev/null +++ b/clienttest/connect.go @@ -0,0 +1,69 @@ +package main + +import ( + "time" + + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/module" + "mongo.games.com/goserver/core/netlib" +) + +const ( + // RobotSessionStartId 机器人session开始id + RobotSessionStartId = 100000000 +) + +var ( + BenchMarkModule = &BenchMark{} + WaitConnectSessions []*netlib.SessionConfig +) + +// NewSession 新建session +// id 连接id, 默认自动分配 +func NewSession(id ...int) { + cfg := Config.Connects + if len(id) > 0 && id[0] > 0 { + cfg.Id = id[0] + } else { + BenchMarkModule.idx++ + cfg.Id = BenchMarkModule.idx + } + cfg.Init() + logger.Logger.Info("waite connect session id=", cfg.Id) + WaitConnectSessions = append(WaitConnectSessions, &cfg) +} + +type BenchMark struct { + idx int +} + +func (m *BenchMark) ModuleName() string { + return "benchmark-module" +} + +func (m *BenchMark) Init() { + m.idx = RobotSessionStartId + for i := 0; i < Config.Count; i++ { + NewSession() + } +} + +// Update 机器开始连接游戏服务器 +func (m *BenchMark) Update() { + n := len(WaitConnectSessions) + if n > 0 { + config := WaitConnectSessions[n-1] + WaitConnectSessions = WaitConnectSessions[:n-1] + if err := netlib.Connect(config); err != nil { + logger.Logger.Error("netlib.Connect error", err) + } + } +} + +func (m *BenchMark) Shutdown() { + module.UnregisteModule(m) +} + +func init() { + module.RegisteModule(BenchMarkModule, time.Millisecond, 1) +} diff --git a/clienttest/constants.go b/clienttest/constants.go new file mode 100644 index 0000000..8a87971 --- /dev/null +++ b/clienttest/constants.go @@ -0,0 +1,31 @@ +package main + +import ( + "mongo.games.com/goserver/core/netlib" + "mongo.games.com/goserver/core/timer" + "time" +) + +const ( + SessionAttributeClientAccountId int = iota // 账号 + SessionAttributeUser + SessionAttributePingTimer +) + +func StartSessionPingTimer(s *netlib.Session, act timer.TimerAction, ud interface{}, interval time.Duration, times int) bool { + StopSessionPingTimer(s) + if hTimer, ok := timer.StartTimer(act, ud, interval, times); ok { + s.SetAttribute(SessionAttributePingTimer, hTimer) + return true + } + return false +} + +func StopSessionPingTimer(s *netlib.Session) { + if h, ok := s.GetAttribute(SessionAttributePingTimer).(timer.TimerHandle); ok { + if h != timer.TimerHandle(0) { + timer.StopTimer(h) + s.RemoveAttribute(SessionAttributePingTimer) + } + } +} diff --git a/clienttest/gatesessionhandler.go b/clienttest/gatesessionhandler.go new file mode 100644 index 0000000..e6b06d7 --- /dev/null +++ b/clienttest/gatesessionhandler.go @@ -0,0 +1,97 @@ +package main + +import ( + "crypto/md5" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "math/rand" + "mongo.games.com/game/common" + "mongo.games.com/game/model" + loginproto "mongo.games.com/game/protocol/login" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" + "strconv" + "sync/atomic" + "time" +) + +/* + 添加到客户端管理器,管理器负责登录 + 当连接断开时,从管理器中移除,判断是否需要重连 +*/ + +const ( + GateSessionHandlerName = "handler-gate-session" +) + +type GateSessionHandler struct { + netlib.BasicSessionHandler +} + +func (g *GateSessionHandler) GetName() string { + return GateSessionHandlerName +} + +func (g *GateSessionHandler) GetInterestOps() uint { + return 1< + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clienttest/main.go b/clienttest/main.go new file mode 100644 index 0000000..ae524ed --- /dev/null +++ b/clienttest/main.go @@ -0,0 +1,24 @@ +package main + +import ( + _ "mongo.games.com/game" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/module" +) + +func main() { + defer core.ClosePackages() + core.LoadPackages("config.yaml") + // core hook + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + + return nil + }) + core.RegisteHook(core.HOOK_AFTER_STOP, func() error { + + return nil + }) + // module模块 + waiter := module.Start() + waiter.Wait("main()") +} diff --git a/common/clock.go b/common/clock.go index c46dc37..ea5bc03 100644 --- a/common/clock.go +++ b/common/clock.go @@ -122,9 +122,9 @@ func (this *ClockMgr) Update() { this.LastDay = day this.fireDayEvent() - week := GetWeekStartTs(tNow.Unix()) - if week != int64(this.LastWeek) { - this.LastWeek = int(week) + _, week := tNow.ISOWeek() + if week != this.LastWeek { + this.LastWeek = week this.fireWeekEvent() } diff --git a/common/constant.go b/common/constant.go index 56eb3c2..6c6970c 100644 --- a/common/constant.go +++ b/common/constant.go @@ -99,6 +99,7 @@ const ( GameId_AngerUncle = 606 // 愤怒大叔 GameId_SmallRoket = 607 // 小火箭 GameId_Clawdoll = 608 // 娃娃机 + GameId_PushCoin = 609 // 推币机 __GameId_ThrGame_Min__ = 700 //################三方类################ GameId_Thr_Dg = 701 //DG Game GameId_Thr_XHJ = 901 ///DG Game @@ -118,6 +119,7 @@ const ( GameDifFruits = "306" // 水果机 GameDifRichblessed = "307" // 多彩多福 GameDifClawdoll = "608" // 娃娃机 + GameDifPushCoin = "609" // 推币机 ) // IsTienLenYuLe TienLen娱乐 @@ -343,6 +345,10 @@ const ( GainWayNianGain_EveryDayTask = 132 //年兽活动每日任务 GainWayNianGain_Task = 133 //年兽活动任务 GainWayConsume = 134 //累消活动获得 + GainWayPushCoinExchangeCost = 135 // 推币机兑换消耗 + GainWatPushCoinExchangeGain = 136 // 推币机兑换获得 + GainWayPushCoinGain = 137 // 推币机掉落获得 + GainWayPushCoinCost = 138 // 推币机消耗 ) // 后台选择 金币变化类型 的充值 类型id号起始 @@ -598,6 +604,12 @@ const ( ItemIDRoomCard = 40002 // 房卡 ItemIDLittleGuaranteed = 50014 //小爆竹 ItemIDBigGuaranteed = 50015 //大爆竹 + ItemIDPlum = 50016 //梅花(推币机) + ItemIDBigCoin = 50017 //大金币 + ItemIDCoin1 = 50018 //金币1 + ItemIDCoin2 = 50019 //金币2 + ItemIDCoin3 = 50020 //金币3 + ItemIDShake = 50021 //震动效果 ) func ToItemId(id int32) int32 { diff --git a/common/time.go b/common/time.go index c528189..3d39d6e 100644 --- a/common/time.go +++ b/common/time.go @@ -76,8 +76,12 @@ func InSameWeek(tNow, tPre time.Time) bool { if tPre.IsZero() { return true } - - if GetWeekStartTs(tNow.Unix()) == GetWeekStartTs(tPre.Unix()) { + y1, w1 := tNow.ISOWeek() + y2, w2 := tPre.ISOWeek() + if y1 != y2 { + return false + } + if w1 == w2 { return true } return false diff --git a/dao/internal/red_packet.go b/dao/internal/red_packet.go index 1008510..3cee7c1 100644 --- a/dao/internal/red_packet.go +++ b/dao/internal/red_packet.go @@ -43,9 +43,9 @@ type RedPacketColumns struct { var redPacketColumns = &RedPacketColumns{ ID: "_id", - Cid: "Cid", // 红包活动id - Use: "Use", // 已发红包 红包奖励数量:已发个数 - Ts: "Ts", // 更新时间戳 + Cid: "cid", // 红包活动id + Use: "use", // 已发红包 红包奖励数量:已发个数 + Ts: "ts", // 更新时间戳 } func NewRedPacket() *RedPacket { diff --git a/dao/internal/red_packet_history.go b/dao/internal/red_packet_history.go new file mode 100644 index 0000000..b87040d --- /dev/null +++ b/dao/internal/red_packet_history.go @@ -0,0 +1,283 @@ +// -------------------------------------------------------------------------------------------- +// The following code is automatically generated by the mongo-dao-generator tool. +// Please do not modify this code manually to avoid being overwritten in the next generation. +// For more tool details, please click the link to view https://github.com/dobyte/mongo-dao-generator +// -------------------------------------------------------------------------------------------- + +package internal + +import ( + "context" + "errors" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + modelpkg "mongo.games.com/game/model" +) + +type RedPacketHistoryFilterFunc func(cols *RedPacketHistoryColumns) interface{} +type RedPacketHistoryUpdateFunc func(cols *RedPacketHistoryColumns) interface{} +type RedPacketHistoryPipelineFunc func(cols *RedPacketHistoryColumns) interface{} +type RedPacketHistoryCountOptionsFunc func(cols *RedPacketHistoryColumns) *options.CountOptions +type RedPacketHistoryAggregateOptionsFunc func(cols *RedPacketHistoryColumns) *options.AggregateOptions +type RedPacketHistoryFindOneOptionsFunc func(cols *RedPacketHistoryColumns) *options.FindOneOptions +type RedPacketHistoryFindManyOptionsFunc func(cols *RedPacketHistoryColumns) *options.FindOptions +type RedPacketHistoryUpdateOptionsFunc func(cols *RedPacketHistoryColumns) *options.UpdateOptions +type RedPacketHistoryDeleteOptionsFunc func(cols *RedPacketHistoryColumns) *options.DeleteOptions +type RedPacketHistoryInsertOneOptionsFunc func(cols *RedPacketHistoryColumns) *options.InsertOneOptions +type RedPacketHistoryInsertManyOptionsFunc func(cols *RedPacketHistoryColumns) *options.InsertManyOptions + +type RedPacketHistory struct { + Columns *RedPacketHistoryColumns + Database *mongo.Database + Collection *mongo.Collection +} + +type RedPacketHistoryColumns struct { + Platform string // 平台 + ID string + Cid string // 红包活动id + Snid string // 玩家id + Ts string // 时间戳 + ItemId string // 道具id + ItemNum string // 道具数量 +} + +var redPacketHistoryColumns = &RedPacketHistoryColumns{ + Platform: "-", // 平台 + ID: "_id", + Cid: "cid", // 红包活动id + Snid: "snid", // 玩家id + Ts: "ts", // 时间戳 + ItemId: "itemid", // 道具id + ItemNum: "itemnum",// 道具数量 +} + +func NewRedPacketHistory() *RedPacketHistory { + return &RedPacketHistory{ + Columns: redPacketHistoryColumns, + } +} + +// Count returns the number of documents in the collection. +func (dao *RedPacketHistory) Count(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryCountOptionsFunc) (int64, error) { + var ( + opts *options.CountOptions + filter = filterFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.CountDocuments(ctx, filter, opts) +} + +// Aggregate executes an aggregate command against the collection and returns a cursor over the resulting documents. +func (dao *RedPacketHistory) Aggregate(ctx context.Context, pipelineFunc RedPacketHistoryPipelineFunc, optionsFunc ...RedPacketHistoryAggregateOptionsFunc) (*mongo.Cursor, error) { + var ( + opts *options.AggregateOptions + pipeline = pipelineFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.Aggregate(ctx, pipeline, opts) +} + +// InsertOne executes an insert command to insert a single document into the collection. +func (dao *RedPacketHistory) InsertOne(ctx context.Context, model *modelpkg.RedPacketHistory, optionsFunc ...RedPacketHistoryInsertOneOptionsFunc) (*mongo.InsertOneResult, error) { + if model == nil { + return nil, errors.New("model is nil") + } + + if err := dao.autofill(ctx, model); err != nil { + return nil, err + } + + var opts *options.InsertOneOptions + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.InsertOne(ctx, model, opts) +} + +// InsertMany executes an insert command to insert multiple documents into the collection. +func (dao *RedPacketHistory) InsertMany(ctx context.Context, models []*modelpkg.RedPacketHistory, optionsFunc ...RedPacketHistoryInsertManyOptionsFunc) (*mongo.InsertManyResult, error) { + if len(models) == 0 { + return nil, errors.New("models is empty") + } + + documents := make([]interface{}, 0, len(models)) + for i := range models { + model := models[i] + if err := dao.autofill(ctx, model); err != nil { + return nil, err + } + documents = append(documents, model) + } + + var opts *options.InsertManyOptions + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.InsertMany(ctx, documents, opts) +} + +// UpdateOne executes an update command to update at most one document in the collection. +func (dao *RedPacketHistory) UpdateOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) { + var ( + opts *options.UpdateOptions + filter = filterFunc(dao.Columns) + update = updateFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.UpdateOne(ctx, filter, update, opts) +} + +// UpdateOneByID executes an update command to update at most one document in the collection. +func (dao *RedPacketHistory) UpdateOneByID(ctx context.Context, id string, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) { + objectID, err := primitive.ObjectIDFromHex(id) + if err != nil { + return nil, err + } + + return dao.UpdateOne(ctx, func(cols *RedPacketHistoryColumns) interface{} { + return bson.M{"_id": objectID} + }, updateFunc, optionsFunc...) +} + +// UpdateMany executes an update command to update documents in the collection. +func (dao *RedPacketHistory) UpdateMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) { + var ( + opts *options.UpdateOptions + filter = filterFunc(dao.Columns) + update = updateFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.UpdateMany(ctx, filter, update, opts) +} + +// FindOne executes a find command and returns a model for one document in the collection. +func (dao *RedPacketHistory) FindOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryFindOneOptionsFunc) (*modelpkg.RedPacketHistory, error) { + var ( + opts *options.FindOneOptions + model = &modelpkg.RedPacketHistory{} + filter = filterFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + err := dao.Collection.FindOne(ctx, filter, opts).Decode(model) + if err != nil { + if err == mongo.ErrNoDocuments { + return nil, nil + } + return nil, err + } + + return model, nil +} + +// FindOneByID executes a find command and returns a model for one document in the collection. +func (dao *RedPacketHistory) FindOneByID(ctx context.Context, id string, optionsFunc ...RedPacketHistoryFindOneOptionsFunc) (*modelpkg.RedPacketHistory, error) { + objectID, err := primitive.ObjectIDFromHex(id) + if err != nil { + return nil, err + } + + return dao.FindOne(ctx, func(cols *RedPacketHistoryColumns) interface{} { + return bson.M{"_id": objectID} + }, optionsFunc...) +} + +// FindMany executes a find command and returns many models the matching documents in the collection. +func (dao *RedPacketHistory) FindMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryFindManyOptionsFunc) ([]*modelpkg.RedPacketHistory, error) { + var ( + opts *options.FindOptions + filter = filterFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + cur, err := dao.Collection.Find(ctx, filter, opts) + if err != nil { + return nil, err + } + + models := make([]*modelpkg.RedPacketHistory, 0) + + if err = cur.All(ctx, &models); err != nil { + return nil, err + } + + return models, nil +} + +// DeleteOne executes a delete command to delete at most one document from the collection. +func (dao *RedPacketHistory) DeleteOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) { + var ( + opts *options.DeleteOptions + filter = filterFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.DeleteOne(ctx, filter, opts) +} + +// DeleteOneByID executes a delete command to delete at most one document from the collection. +func (dao *RedPacketHistory) DeleteOneByID(ctx context.Context, id string, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) { + objectID, err := primitive.ObjectIDFromHex(id) + if err != nil { + return nil, err + } + + return dao.DeleteOne(ctx, func(cols *RedPacketHistoryColumns) interface{} { + return bson.M{"_id": objectID} + }, optionsFunc...) +} + +// DeleteMany executes a delete command to delete documents from the collection. +func (dao *RedPacketHistory) DeleteMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) { + var ( + opts *options.DeleteOptions + filter = filterFunc(dao.Columns) + ) + + if len(optionsFunc) > 0 { + opts = optionsFunc[0](dao.Columns) + } + + return dao.Collection.DeleteMany(ctx, filter, opts) +} + +// autofill when inserting data +func (dao *RedPacketHistory) autofill(ctx context.Context, model *modelpkg.RedPacketHistory) error { + if model.ID.IsZero() { + model.ID = primitive.NewObjectID() + } + + return nil +} diff --git a/dao/red_packet.go b/dao/red_packet.go index 3753428..5a10a32 100644 --- a/dao/red_packet.go +++ b/dao/red_packet.go @@ -71,10 +71,6 @@ func (r *RedPacket) GetAll() (res []*modelpkg.RedPacket, err error) { func (r *RedPacket) UpdateAll(list []*modelpkg.RedPacket) error { var operations []mongo.WriteModel for _, v := range list { - updateDataMap := bson.M{ - "$set": v, - } - delete(updateDataMap["$set"].(bson.M), "_id") // 删除 _id 字段 operations = append(operations, mongo.NewUpdateOneModel().SetFilter(bson.M{"_id": v.ID}).SetUpdate(bson.M{"$set": v}).SetUpsert(true)) } diff --git a/dao/red_packet_history.go b/dao/red_packet_history.go new file mode 100644 index 0000000..d4aa21d --- /dev/null +++ b/dao/red_packet_history.go @@ -0,0 +1,95 @@ +package dao + +import ( + "context" + + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/mongox" + + "mongo.games.com/game/dao/internal" + modelpkg "mongo.games.com/game/model" +) + +var ( + _ = context.Background() + _ = logger.Logger + _ = bson.M{} + _ = mongo.Database{} +) + +type RedPacketHistoryColumns = internal.RedPacketHistoryColumns + +type RedPacketHistory struct { + *internal.RedPacketHistory +} + +func GetRedPacketHistory(key string) (*RedPacketHistory, error) { + return mongox.GetDao(key, NewRedPacketHistory) +} + +func NewRedPacketHistory(db *mongo.Database, c *mongo.Collection) (*RedPacketHistory, any) { + if db == nil || c == nil { + return &RedPacketHistory{}, &modelpkg.RedPacketHistory{} + } + + v := internal.NewRedPacketHistory() + v.Database = db + v.Collection = c + c.Indexes().CreateMany(context.Background(), []mongo.IndexModel{ + { + Keys: bson.D{{"snid", 1}, {"cid", 1}, {"ts", -1}}, // 1 表示升序,-1 表示降序 + Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引 + }, + { + Keys: bson.D{{"snid", 1}, {"ts", -1}}, + Options: options.Index().SetBackground(true).SetSparse(true), + }, + { + Keys: bson.D{{"cid", 1}}, // 1 表示升序,-1 表示降序 + Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引 + }, + { + Keys: bson.D{{"ts", 1}}, // 1 表示升序,-1 表示降序 + Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引 + }, + { + Keys: bson.D{{"itemid", -1}}, // 1 表示升序,-1 表示降序 + Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引 + }, + { + Keys: bson.D{{"itemnum", -1}}, // 1 表示升序,-1 表示降序 + Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引 + }, + }) + + return &RedPacketHistory{RedPacketHistory: v}, &modelpkg.RedPacketHistory{} +} + +func (r *RedPacketHistory) GetHistory(snid int32, cid int64) ([]*modelpkg.RedPacketHistory, error) { + res, err := r.FindMany(context.Background(), func(cols *internal.RedPacketHistoryColumns) interface{} { + if cid > 0 { + return bson.M{cols.Snid: snid, cols.Cid: cid} + } + return bson.M{cols.Snid: snid} + }, func(cols *internal.RedPacketHistoryColumns) *options.FindOptions { + return options.Find().SetSort(bson.D{{cols.Ts, -1}}).SetLimit(30) + }) + if err != nil { + logger.Logger.Error("RedPacketHistory.GetHistory ", err) + return nil, err + } + + return res, err +} + +func (r *RedPacketHistory) Save(history *modelpkg.RedPacketHistory) error { + _, err := r.InsertOne(context.Background(), history) + if err != nil { + logger.Logger.Error("RedPacketHistory.Insert ", err) + return err + } + return nil +} diff --git a/data/DB_ACTPushCoin.dat b/data/DB_ACTPushCoin.dat new file mode 100644 index 0000000..b8d081d --- /dev/null +++ b/data/DB_ACTPushCoin.dat @@ -0,0 +1,11 @@ + +  + + І +  +  N + І +  + І +  + d / \ No newline at end of file diff --git a/data/DB_ACTPushCoin.json b/data/DB_ACTPushCoin.json new file mode 100644 index 0000000..7910aa7 --- /dev/null +++ b/data/DB_ACTPushCoin.json @@ -0,0 +1,76 @@ +{ + "Arr": [ + { + "Id": 1, + "Rate": 4000, + "Gain": { + "50018": 5 + }, + "Value": 25000 + }, + { + "Id": 2, + "Rate": 1000, + "Gain": { + "50018": 10 + }, + "Value": 50000 + }, + { + "Id": 3, + "Rate": 450, + "Gain": { + "50018": 20 + }, + "Value": 100000 + }, + { + "Id": 4, + "Rate": 1500, + "Gain": { + "30001": 1 + }, + "Value": 10000 + }, + { + "Id": 5, + "Rate": 750, + "Gain": { + "30001": 5 + }, + "Value": 50000 + }, + { + "Id": 6, + "Rate": 250, + "Gain": { + "100002": 1 + }, + "Value": 100000 + }, + { + "Id": 7, + "Rate": 1000, + "Gain": { + "50017": 1 + }, + "Value": 50000 + }, + { + "Id": 8, + "Rate": 950, + "Gain": { + "50016": 1 + }, + "Value": 30000 + }, + { + "Id": 9, + "Rate": 100, + "Gain": { + "30011": 1 + }, + "Value": 100000000 + } + ] +} \ No newline at end of file diff --git a/data/DB_GameFree.dat b/data/DB_GameFree.dat index 752e96a..abdae44 100644 Binary files a/data/DB_GameFree.dat and b/data/DB_GameFree.dat differ diff --git a/data/DB_GameFree.json b/data/DB_GameFree.json index b0d59b6..8fd2e2f 100644 --- a/data/DB_GameFree.json +++ b/data/DB_GameFree.json @@ -4520,7 +4520,7 @@ { "Id": 2110001, "Name": "十三张四人", - "Title": "1", + "Title": "新手场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4574,7 +4574,7 @@ { "Id": 2110002, "Name": "十三张四人", - "Title": "2", + "Title": "中级场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4628,7 +4628,7 @@ { "Id": 2110003, "Name": "十三张四人", - "Title": "3", + "Title": "高级场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4682,7 +4682,7 @@ { "Id": 2110004, "Name": "十三张四人", - "Title": "4", + "Title": "富豪场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4736,7 +4736,7 @@ { "Id": 2110005, "Name": "十三张四人", - "Title": "5", + "Title": "至尊场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4790,7 +4790,7 @@ { "Id": 2110006, "Name": "十三张四人", - "Title": "6", + "Title": "大神场", "GameId": 211, "GameRule": 21100, "GameType": 2, @@ -4843,7 +4843,7 @@ { "Id": 2120001, "Name": "十三张八人", - "Title": "1", + "Title": "新手场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -4897,7 +4897,7 @@ { "Id": 2120002, "Name": "十三张八人", - "Title": "2", + "Title": "中级场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -4951,7 +4951,7 @@ { "Id": 2120003, "Name": "十三张八人", - "Title": "3", + "Title": "高级场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -5005,7 +5005,7 @@ { "Id": 2120004, "Name": "十三张八人", - "Title": "4", + "Title": "富豪场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -5059,7 +5059,7 @@ { "Id": 2120005, "Name": "十三张八人", - "Title": "5", + "Title": "至尊场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -5113,7 +5113,7 @@ { "Id": 2120006, "Name": "十三张八人", - "Title": "6", + "Title": "大神场", "GameId": 212, "GameRule": 21200, "GameType": 2, @@ -7019,6 +7019,41 @@ "PlayerWaterRate": 100, "BetWaterRate": 100, "GameName": "娃娃机" + }, + { + "Id": 6090001, + "Name": "推币机", + "Title": "推币机", + "GameId": 609, + "GameRule": 60900, + "GameType": 5, + "SceneType": 1, + "Desc": "0", + "ShowType": 3, + "ShowId": 60900, + "Turn": 60900, + "BetDec": "0", + "Ai": [ + 0 + ], + "OtherIntParams": [ + 5000, + 10000, + 15000 + ], + "RobotNumRng": [ + 0 + ], + "SameIpLimit": 1, + "GameDif": "609", + "GameClass": 2, + "PlatformName": "越南棋牌", + "MaxBetCoin": [ + 0 + ], + "PlayerWaterRate": 100, + "BetWaterRate": 100, + "GameName": "推币机" } ] } \ No newline at end of file diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index fb28f10..6148338 100644 Binary files a/data/DB_GameItem.dat and b/data/DB_GameItem.dat differ diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index 954355e..b19ba17 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -7300,6 +7300,228 @@ "CompositionMax": 9999, "Location": "0", "Describe": "可在年兽活动中击退年兽,获得奖品" + }, + { + "Id": 50016, + "Name": "梅花", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "可在推币机活动兑换道具" + }, + { + "Id": 50017, + "Name": "大金币", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "推币机活动中掉落的3D道具", + "Num": 50000 + }, + { + "Id": 50018, + "Name": "3D金币5K", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "推币机活动中掉落的3D道具", + "Num": 5000 + }, + { + "Id": 50019, + "Name": "3D金币10K", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "推币机活动中掉落的3D道具", + "Num": 10000 + }, + { + "Id": 50020, + "Name": "3D金币15K", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "推币机活动中掉落的3D道具", + "Num": 15000 + }, + { + "Id": 50021, + "Name": "震动效果", + "ShowLocation": [ + 0, + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 29, + "Effect0": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Location": "0", + "Describe": "推币机震动次数" } ] } \ No newline at end of file diff --git a/data/DB_GameRule.dat b/data/DB_GameRule.dat index 5377feb..866c20c 100644 Binary files a/data/DB_GameRule.dat and b/data/DB_GameRule.dat differ diff --git a/data/DB_GameRule.json b/data/DB_GameRule.json index 4860e87..eacbcca 100644 --- a/data/DB_GameRule.json +++ b/data/DB_GameRule.json @@ -267,6 +267,12 @@ "Name": "娃娃机", "GameId": 608, "GameDif": "608" + }, + { + "Id": 60900, + "Name": "推币机", + "GameId": 609, + "GameDif": "609" } ] } \ No newline at end of file diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 1560036..96640b0 100644 Binary files a/data/DB_GiftCard.dat and b/data/DB_GiftCard.dat differ diff --git a/data/DB_NewYearActivity.dat b/data/DB_NewYearActivity.dat index b28d448..bf7a14a 100644 --- a/data/DB_NewYearActivity.dat +++ b/data/DB_NewYearActivity.dat @@ -4,10 +4,10 @@ SignReward50014,10;100001,100000" 签到奖励 . SignExcReward50015,1"签到额外奖励 =SignExcRewardMax2"$签到额外奖励赠送次数上限 9SignExcRewardProp30"签到额外奖励赠送概率 - BossExp6000000" + BossExp6800000" BOSS血量 -9 -BossReward100001,100000;100002,10"BOSS击杀奖励 +: +BossReward100001,1000000;100002,10"BOSS击杀奖励 / LuckyRankNeed10000"幸运榜上榜条件 /RankNeed7000000"总伤害榜上榜条件 > LittleHurtGold @@ -26,4 +26,4 @@ GiftShopID991001,991002,991003"礼包ID @ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购 4 BossExcLimit30"年兽死亡额外掉落要求 " BuffCount1"Buff生效次数 -oExchangeDiamond 30,5,1000000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量 \ No newline at end of file +oExchangeDiamond 30,5,1500000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量 \ No newline at end of file diff --git a/data/DB_NewYearActivity.json b/data/DB_NewYearActivity.json index f60e84e..5005b8a 100644 --- a/data/DB_NewYearActivity.json +++ b/data/DB_NewYearActivity.json @@ -27,13 +27,13 @@ { "Id": 5, "PorpName": "BossExp", - "PropValue": "6000000", + "PropValue": "6800000", "PropDec": "BOSS血量" }, { "Id": 6, "PorpName": "BossReward", - "PropValue": "100001,100000;100002,10", + "PropValue": "100001,1000000;100002,10", "PropDec": "BOSS击杀奖励" }, { @@ -123,7 +123,7 @@ { "Id": 21, "PorpName": "ExchangeDiamond", - "PropValue": "30,5,1000000", + "PropValue": "30,5,1500000", "PropDec": "单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量" } ] diff --git a/data/DB_NewYearRankReward.dat b/data/DB_NewYearRankReward.dat new file mode 100644 index 0000000..c03ab32 --- /dev/null +++ b/data/DB_NewYearRankReward.dat @@ -0,0 +1,84 @@ + +"""d +""d" +""d" +""d +""c +""b +""a +""` +  ""_ + + +""^ +  ""] +  "\" +  ""[ +"Z" +""Y +""X +""W +""V +""U +""T +""S +""R +""Q +""P +""O +""N +"M" +"L" +""K +""J +""I +  "H" +!!""G +""""F +##""E +$$""D +%%""C +&&""B +''""A +((""@ +)""d" +*""d" ++""d" +,""d +-""c +.""b +/"a" +0""` +1 "_" +2 +""^ +3 ""] +4 ""\ +5 ""[ +6"Z" +7""Y +8"X" +9""W +:""V +;""U +<""T +=""S +>""R +?"Q" +@""P +A""O +B""N +C""M +D""L +E""K +F""J +G""I +H ""H +I!"G" +J"""F +K#""E +L$""D +M%""C +N&""B +O'""A +P(""@ \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 735a0e1..318e11f 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c -< ((2Ÿ28@;JƸJPdX` +< ((2Ÿ28@;JJƸPdX` ?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 1eb2fae..5337ad3 100644 Binary files a/data/DB_PropExchange.dat and b/data/DB_PropExchange.dat differ diff --git a/data/DB_PropExchange.json b/data/DB_PropExchange.json index 85e6958..bd7d6e3 100644 --- a/data/DB_PropExchange.json +++ b/data/DB_PropExchange.json @@ -64,12 +64,70 @@ "100002": 500 } }, - {}, - {}, - {}, - {}, - {}, - {}, + { + "Id": 5, + "Group": 2, + "Cost": { + "50016": 30 + }, + "Gain": { + "40002": 1 + }, + "Times": 5 + }, + { + "Id": 6, + "Group": 2, + "Cost": { + "50016": 10 + }, + "Gain": { + "100002": 3 + }, + "Times": 10 + }, + { + "Id": 7, + "Group": 2, + "Cost": { + "50016": 5 + }, + "Gain": { + "30001": 15 + }, + "Times": 15 + }, + { + "Id": 8, + "Group": 2, + "Cost": { + "50016": 1 + }, + "Gain": { + "20003": 1 + }, + "Times": 20 + }, + { + "Id": 9, + "Group": 2, + "Cost": { + "50016": 1 + }, + "Gain": { + "100001": 30000 + } + }, + { + "Id": 10, + "Group": 2, + "Cost": { + "50016": 1 + }, + "Gain": { + "50021": 1 + } + }, {}, {}, {}, diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 7a470a4..6d98145 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/data/DB_Task.json b/data/DB_Task.json index 8aef01a..dd05456 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -1245,7 +1245,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "50014": 10 + "50001": 5, + "50014": 1 } }, { @@ -1258,6 +1259,7 @@ "TargetTimes": 3600, "FinishTimes": 1, "Award": { + "100001": 100000, "50014": 10 } }, @@ -1271,7 +1273,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "50014": 10 + "50001": 5, + "50014": 5 } }, { @@ -1284,7 +1287,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "50014": 10 + "100002": 5, + "50014": 5 }, "GameType": 1 }, @@ -1298,7 +1302,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "50014": 10 + "100001": 30000, + "50014": 5 }, "GameType": 2 }, @@ -1312,7 +1317,7 @@ "TargetTimes": 1000000, "FinishTimes": 1, "Award": { - "50014": 10 + "50014": 5 } }, { @@ -1325,7 +1330,7 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "50014": 10 + "50014": 20 } }, { @@ -1351,7 +1356,7 @@ "TargetTimes": 10000000, "FinishTimes": 1, "Award": { - "50014": 10 + "50014": 15 } }, { @@ -1364,7 +1369,7 @@ "TargetTimes": 20000000, "FinishTimes": 1, "Award": { - "50014": 10 + "50014": 20 } }, { @@ -1390,7 +1395,7 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 5 } }, { @@ -1403,7 +1408,7 @@ "TargetTimes": 199, "FinishTimes": 1, "Award": { - "50015": 10 + "50015": 3 } }, { @@ -1416,7 +1421,7 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "50015": 10 + "50014": 5 } }, { @@ -1429,7 +1434,7 @@ "TargetTimes": 1000000, "FinishTimes": 1, "Award": { - "50015": 10 + "100001": 500000 } }, { @@ -1442,7 +1447,7 @@ "TargetTimes": 10000000, "FinishTimes": 1, "Award": { - "50015": 10 + "100002": 5 } }, { @@ -1455,7 +1460,8 @@ "TargetTimes": 999, "FinishTimes": 1, "Award": { - "50015": 10 + "100001": 1000000, + "50015": 5 } }, { @@ -1468,6 +1474,7 @@ "TargetTimes": 1999, "FinishTimes": 1, "Award": { + "100001": 10000000, "50015": 10 } }, @@ -1481,7 +1488,8 @@ "TargetTimes": 5999, "FinishTimes": 1, "Award": { - "50014": 10 + "100001": 30000000, + "50015": 20 } }, { @@ -1494,7 +1502,8 @@ "TargetTimes": 9999, "FinishTimes": 1, "Award": { - "50014": 10 + "100001": 50000000, + "50015": 45 } }, { @@ -1507,72 +1516,72 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 2 } }, { "Id": 13022, "Order": 22, "Name": "年兽活动", - "Des": "成功击杀2只年兽", - "ActivityType": 9, - "TaskType": 33, - "TargetTimes": 2, - "FinishTimes": 1, - "Award": { - "50014": 10 - } - }, - { - "Id": 13023, - "Order": 23, - "Name": "年兽活动", "Des": "成功击杀3只年兽", "ActivityType": 9, "TaskType": 33, "TargetTimes": 3, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 5 + } + }, + { + "Id": 13023, + "Order": 23, + "Name": "年兽活动", + "Des": "成功击杀6只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 6, + "FinishTimes": 1, + "Award": { + "50015": 10 } }, { "Id": 13024, "Order": 24, "Name": "年兽活动", - "Des": "成功击杀5只年兽", + "Des": "成功击杀9只年兽", "ActivityType": 9, "TaskType": 33, - "TargetTimes": 5, + "TargetTimes": 9, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 15 } }, { "Id": 13025, "Order": 25, "Name": "年兽活动", - "Des": "成功击杀8只年兽", + "Des": "成功击杀12只年兽", "ActivityType": 9, "TaskType": 33, - "TargetTimes": 8, + "TargetTimes": 12, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 20 } }, { "Id": 13026, "Order": 26, "Name": "年兽活动", - "Des": "成功击杀10只年兽", + "Des": "成功击杀20只年兽", "ActivityType": 9, "TaskType": 33, - "TargetTimes": 10, + "TargetTimes": 20, "FinishTimes": 1, "Award": { - "50014": 10 + "50015": 45 } }, { @@ -1586,7 +1595,7 @@ "FinishTimes": 1, "Award": { "100001": 100000, - "100002": 1 + "50014": 2 } }, { @@ -1600,7 +1609,7 @@ "FinishTimes": 1, "Award": { "100001": 200000, - "100002": 2 + "50015": 2 } }, { @@ -1614,7 +1623,7 @@ "FinishTimes": 1, "Award": { "100001": 300000, - "100002": 3 + "50015": 5 } }, { @@ -1628,7 +1637,7 @@ "FinishTimes": 1, "Award": { "100001": 500000, - "100002": 5 + "50015": 10 } }, { @@ -1642,7 +1651,7 @@ "FinishTimes": 1, "Award": { "100001": 1000000, - "100002": 10 + "50015": 15 } }, { @@ -1656,7 +1665,7 @@ "FinishTimes": 1, "Award": { "100001": 2000000, - "100002": 20 + "50015": 25 } } ] diff --git a/data/gameconfig/pushcoin.json b/data/gameconfig/pushcoin.json new file mode 100644 index 0000000..d296208 --- /dev/null +++ b/data/gameconfig/pushcoin.json @@ -0,0 +1,9 @@ +{ + "GameName":"推币机", + "GameId":609, + "GameMode":[0], + "SceneType":[1], + "CanForceStart":true, + "MinPlayerCnt":1, + "DefaultPlayerCnt":1 +} \ No newline at end of file diff --git a/dbproxy/mq/c_welfarelog.go b/dbproxy/mq/c_welfarelog.go index 68f30e6..d8c2ea0 100644 --- a/dbproxy/mq/c_welfarelog.go +++ b/dbproxy/mq/c_welfarelog.go @@ -3,6 +3,7 @@ package mq import ( "mongo.games.com/goserver/core/logger" + "mongo.games.com/game/dao" "mongo.games.com/game/dbproxy/svc" "mongo.games.com/game/model" "mongo.games.com/game/mq" @@ -27,4 +28,28 @@ func init() { return }, }) + + mq.RegisterHandler(&mq.RegisterHandlerParam{ + Name: mq.DBRedPacket, + Data: &model.RedPacketHistory{}, + Handler: func(data interface{}) (err error) { + log, ok := data.(*model.RedPacketHistory) + if !ok { + return + } + + d, err := dao.GetRedPacketHistory(log.Platform) + if err != nil { + logger.Logger.Errorf("get RedPacketHistory failed: %v", err) + return err + } + + err = d.Save(log) + if err != nil { + logger.Logger.Errorf("Save RedPacketHistory failed: %v", err) + return err + } + return nil + }, + }) } diff --git a/dbproxy/svc/l_friendunread.go b/dbproxy/svc/l_friendunread.go index 1f1b9b4..3823014 100644 --- a/dbproxy/svc/l_friendunread.go +++ b/dbproxy/svc/l_friendunread.go @@ -36,6 +36,9 @@ func (svc *FriendUnreadSvc) UpsertFriendUnread(args *model.FriendUnreadByKey, re if cc == nil { return FriendUnreadColError } + if ret == nil { + ret = &model.FriendUnreadRet{} + } err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) if err != nil && err != mgo.ErrNotFound { logger.Logger.Error("UpsertFriendUnread Find is err: ", err) @@ -76,6 +79,9 @@ func (svc *FriendUnreadSvc) UpdateFriendUnread(args *model.FriendUnreadByKey, re if cc == nil { return FriendUnreadColError } + if ret == nil { + ret = &model.FriendUnreadRet{} + } err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) if err != nil && err != mgo.ErrNotFound { logger.Logger.Error("UpdateFriendUnread Find is err: ", err) @@ -98,6 +104,9 @@ func (svc *FriendUnreadSvc) QueryFriendUnreadByKey(args *model.FriendUnreadByKey if fc == nil { return FriendUnreadColError } + if ret == nil { + ret = &model.FriendUnreadRet{} + } err := fc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) if err != nil && err != mgo.ErrNotFound { logger.Logger.Error("QueryFriendUnreadByKey is err: ", err) diff --git a/dbproxy/svc/l_itemlog.go b/dbproxy/svc/l_itemlog.go index 3606e7e..ed8eebc 100644 --- a/dbproxy/svc/l_itemlog.go +++ b/dbproxy/svc/l_itemlog.go @@ -30,6 +30,7 @@ func ItemLogsCollection(plt string) *mongo.Collection { c_itemlog.EnsureIndex(mgo.Index{Key: []string{"typeid", "roomconfigid"}, Background: true, Sparse: true}) c_itemlog.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) c_itemlog.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) + c_itemlog.EnsureIndex(mgo.Index{Key: []string{"seq"}, Background: true, Sparse: true}) c_itemlog.EnsureIndex(mgo.Index{Key: []string{"gamedif"}, Background: true, Sparse: true}) } return c_itemlog @@ -43,6 +44,7 @@ type ItemLogSvc struct { func (svc *ItemLogSvc) InsertItemLog(log *model.ItemLog, ret *bool) (err error) { clog := ItemLogsCollection(log.Platform) if clog == nil { + logger.Logger.Errorf("ItemLogSvc.InsertItemLog get collection fail platform:%v", log.Platform) return } err = clog.Insert(log) @@ -54,10 +56,46 @@ func (svc *ItemLogSvc) InsertItemLog(log *model.ItemLog, ret *bool) (err error) return } +func (svc *ItemLogSvc) Insert(req *model.InsertItemLogReq, res *bool) error { + if len(req.Logs) == 0 { + return nil + } + + clog := ItemLogsCollection(req.Logs[0].Platform) + if clog == nil { + logger.Logger.Errorf("ItemLogSvc.Insert get collection fail platform:%v", req.Logs[0].Platform) + return nil + } + var docs []interface{} + for _, v := range req.Logs { + docs = append(docs, v) + } + if err := clog.Insert(docs...); err != nil { + logger.Logger.Errorf("ItemLogSvc.Insert error: %v", err) + return err + } + *res = true + return nil +} + +func (svc *ItemLogSvc) UpdateState(req *model.UpdateParam, res *model.UpdateRes) error { + c := ItemLogsCollection(req.Platform) + if c == nil { + logger.Logger.Errorf("ItemLogSvc.UpdateState get collection fail platform:%v", req.Platform) + return nil + } + err := c.UpdateId(req.LogId, bson.M{"$set": bson.M{"status": req.State}}) + if err != nil { + logger.Logger.Errorf("ItemLogSvc.UpdateState error: %v", err) + } + return err +} + // GetItemCount 获取v卡兑换消耗数量 func GetItemCount(platform string, snid, id int32, tp int) (count int64) { c := ItemLogsCollection(platform) if c == nil { + logger.Logger.Errorf("ItemLogSvc.GetItemCount get collection fail platform:%v", platform) return 0 } var err error @@ -73,7 +111,7 @@ func GetItemCount(platform string, snid, id int32, tp int) (count int64) { {"$group": bson.M{"_id": nil, "count": bson.M{"$sum": "$count"}}}, }).AllowDiskUse().One(tc) if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Warn("GetItemCount swapN error:", err) + logger.Logger.Error("GetItemCount swapN error:", err) return 0 } swapN = tc.Count @@ -85,7 +123,7 @@ func GetItemCount(platform string, snid, id int32, tp int) (count int64) { {"$group": bson.M{"_id": nil, "count": bson.M{"$sum": "$count"}}}, }).AllowDiskUse().One(tc) if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Warn("GetItemCount costN error:", err) + logger.Logger.Error("GetItemCount costN error:", err) return 0 } costN = tc.Count @@ -107,15 +145,6 @@ func (svc *ItemLogSvc) GetItemCount(req *model.ItemCountParam, count *int64) err return nil } -func (svc *ItemLogSvc) UpdateState(req *model.UpdateParam, res *model.UpdateRes) error { - c := ItemLogsCollection(req.Platform) - if c == nil { - return nil - } - err := c.UpdateId(req.LogId, bson.M{"$set": bson.M{"status": req.State}}) - return err -} - func (svc *ItemLogSvc) GetClawdollItemLog(args *model.ClawdollItemLogReq, ret *model.GetClawdollItemLogRet) (err error) { limitDataNum := 200 @@ -229,38 +258,18 @@ func (svc *ItemLogSvc) GetClawdollSuccessItemLog(args *model.ClawdollSuccessItem func (svc *ItemLogSvc) GetItemLog(req *model.GetItemLogParam, res *model.GetItemLogRes) error { c := ItemLogsCollection(req.Plt) if c == nil { + logger.Logger.Errorf("ItemLogSvc.GetItemLog get collection fail platform:%v", req.Plt) return nil } - err := c.Find(bson.M{"snid": req.SnId, "ts": bson.M{"$gt": req.Ts}}).All(&res.Logs) + err := c.Find(bson.M{"snid": req.SnId, "ts": bson.M{"$gt": req.Ts}}).Sort("ts", "seq").All(&res.Logs) if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Errorf("ItemLogSvc.GetItemLog error: %v", err) return err } return nil } -func (svc *ItemLogSvc) Insert(req *model.InsertItemLogReq, res *bool) error { - if len(req.Logs) == 0 { - return nil - } - - clog := ItemLogsCollection(req.Logs[0].Platform) - if clog == nil { - logger.Logger.Errorf("ItemLogSvc.Insert collection not found Platform:%v", req.Logs[0].Platform) - return nil - } - var docs []interface{} - for _, v := range req.Logs { - docs = append(docs, v) - } - if err := clog.Insert(docs...); err != nil { - logger.Logger.Warn("ItemLogSvc.Insert error:", err) - return err - } - *res = true - return nil -} - func init() { rpc.Register(new(ItemLogSvc)) } diff --git a/dbproxy/svc/l_redpacket.go b/dbproxy/svc/l_redpacket.go index 6ce45a1..a057d9a 100644 --- a/dbproxy/svc/l_redpacket.go +++ b/dbproxy/svc/l_redpacket.go @@ -52,3 +52,20 @@ func (r *RedPacketService) UpdateAll(req *model.UpdateRedPacketAllReq, res *bool return nil } + +func (r *RedPacketService) GetHistory(req *model.GetRedPacketHistoryReq, res *[]*model.RedPacketHistory) error { + d, err := dao.GetRedPacketHistory(req.Plt) + if err != nil { + return err + } + + list, err := d.GetHistory(req.Snid, req.Cid) + if err != nil { + logger.Logger.Errorf("RedPacketService.GetHistory error: %v", err) + return err + } + + *res = list + + return nil +} diff --git a/dbproxy/svc/u_friend.go b/dbproxy/svc/u_friend.go index ed308e2..7476263 100644 --- a/dbproxy/svc/u_friend.go +++ b/dbproxy/svc/u_friend.go @@ -54,6 +54,10 @@ func (svc *FriendSvc) QueryFriendByKey(args *model.FriendByKey, ret *model.Frien if fc == nil { return FriendColError } + if ret == nil { + ret = &model.FriendRet{} + ret.Fri = &model.Friend{} + } err := fc.Find(bson.M{"platform": args.Platform, "snid": args.SnId}).One(&ret.Fri) if err != nil && !errors.Is(err, mgo.ErrNotFound) { logger.Logger.Error("QueryFriendByKey is err: ", err) diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 21efae5..9e3eae0 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -9,6 +9,7 @@ import ( "reflect" "strconv" "strings" + "sync" "time" newMongo "go.mongodb.org/mongo-driver/mongo" @@ -68,6 +69,7 @@ func PlayerDelBackupDataCollection(plt string) *mongo.Collection { } type PlayerDataSvc struct { + mu sync.Mutex // 互斥锁 } func (svc *PlayerDataSvc) InsertPlayerData(args *model.InsertPlayerDataParam, ret *model.PlayerDataRet) (err error) { @@ -323,6 +325,8 @@ func SavePlayerData(pd *model.PlayerData) (err error) { * 保存玩家的全部信息 */ func (svc *PlayerDataSvc) SavePlayerData(pd *model.PlayerData, ret *bool) (err error) { + svc.mu.Lock() + defer svc.mu.Unlock() err = SavePlayerData(pd) *ret = err == nil return diff --git a/etcd/keyconf.go b/etcd/keyconf.go index f7610b4..f349934 100644 --- a/etcd/keyconf.go +++ b/etcd/keyconf.go @@ -15,7 +15,7 @@ const ( ETCDKEY_ACT_GIVE_PREFIX = "/game/plt/actgive/" ETCDKEY_SHOP_EXCHANGE = "/game/exchange_shop" ETCDKEY_GAME_NOTICE = "/game/common_notice" - ETCDKEY_SHOP_ITEM = "/game/item_shop" + ETCDKEY_SHOP_ITEM = "/game/item_shop/" ETCDKEY_GAME_MATCH = "/game/game_match" ETCDKEY_GAME_MATCH_TYPE = "/game/match_type" ETCDKEY_ACT_TURNPLATE = "/game/act_turnplate" @@ -34,7 +34,7 @@ const ( ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 - ETCDKEY_Item = "/game/item" // 道具列表 + ETCDKEY_Item = "/game/item/" // 道具列表 ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 @@ -53,6 +53,7 @@ const ( ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 ETCDKEY_NianRankConfig = "/game/activity_nian_rank" //年兽排行榜配置 - KeyRedPacket = "/game/act_redpacket" //红包配置 - KeyActConsume = "/game/act_consume" //累计消耗活动配置 + KeyRedPacket = "/game/act_redpacket" //红包配置 + KeyActConsume = "/game/act_consume" //累计消耗活动配置 + KeyActPushCoin = "/game/act_pushcoin" //推金币活动配置 ) diff --git a/gamerule/gatesofolympus/constants.go b/gamerule/gatesofolympus/constants.go new file mode 100644 index 0000000..7a61b2e --- /dev/null +++ b/gamerule/gatesofolympus/constants.go @@ -0,0 +1,22 @@ +package gatesofolympus + +// 房间类型 +const ( + RoomMode_Classic int = iota //经典 + RoomMode_Max +) + +// 场景状态 +const ( + GatesOfOlympusStateStart int = iota //默认状态 + GatesOfOlympusStateMax +) + +// 玩家操作 +const ( + GatesOfOlympusPlayerOpStart int = iota + GatesOfOlympusPlayerOpSwitch +) +const NowByte int64 = 10000 + +const GameDataKey = "FortuneData" diff --git a/gamerule/pushcoin/constant.go b/gamerule/pushcoin/constant.go new file mode 100644 index 0000000..1b69348 --- /dev/null +++ b/gamerule/pushcoin/constant.go @@ -0,0 +1,11 @@ +package pushcoin + +const ( + GameStatePlay = iota + GameStateMax +) + +const ( + PowerMax = 700000 + PowerInit = 400000 +) diff --git a/gamesrv/base/robotagent.go b/gamesrv/base/robotagent.go index 5ea4833..300df16 100644 --- a/gamesrv/base/robotagent.go +++ b/gamesrv/base/robotagent.go @@ -62,6 +62,14 @@ func (nsa *NpcServerAgent) SyncDBGameFree(roomId int, DBGameFree *server.DB_Game } } +func (nsa *NpcServerAgent) DestroyScene(sceneId int) { + pack := &server.GRDestroyScene{ + SceneId: proto.Int(sceneId), + } + nsa.sendPacket(int(server.SSPacketID_PACKET_GR_DESTROYSCENE), pack) + +} + // Invite 邀请机器人 func (nsa *NpcServerAgent) Invite(roomId, cnt int, gameFreeId int32) bool { //logger.Logger.Trace("(nsa *NpcServerAgent) Invite", roomId, cnt, isAgent, gameFreeId) diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 8c550ef..fd69683 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -908,6 +908,9 @@ func (this *Scene) Destroy(force bool) { } proto.SetDefaults(pack) this.SendToWorld(int(server.SSPacketID_PACKET_GW_DESTROYSCENE), pack) + + NpcServerAgentSingleton.DestroyScene(int(this.SceneId)) + logger.Logger.Trace("(this *Scene) Destroy(force bool) isCompleted", isCompleted) } diff --git a/gamesrv/base/scene_policy.go b/gamesrv/base/scene_policy.go index 3c36f38..6c548b3 100644 --- a/gamesrv/base/scene_policy.go +++ b/gamesrv/base/scene_policy.go @@ -46,13 +46,6 @@ type ScenePolicy interface { CanAddCoin(s *Scene, p *Player, val int64) bool //当前状态能否换桌 CanChangeCoinScene(s *Scene, p *Player) bool - //创建场景扩展数据 - CreateSceneExData(s *Scene) interface{} - //创建玩家扩展数据 - CreatePlayerExData(s *Scene, p *Player) interface{} - // - PacketGameData(s *Scene) interface{} - InterventionGame(s *Scene, data interface{}) interface{} //通知分场状态 NotifyGameState(s *Scene) @@ -237,18 +230,14 @@ func (bsp *BaseScenePolicy) OnAudienceDropLine(s *Scene, p *Player) { } } } -func (bsp *BaseScenePolicy) GetSceneState(s *Scene, stateid int) SceneState { return G_BaseSceneState } -func (bsp *BaseScenePolicy) IsCompleted(s *Scene) bool { return false } -func (bsp *BaseScenePolicy) IsCanForceStart(s *Scene) bool { return false } -func (bsp *BaseScenePolicy) ForceStart(s *Scene) {} -func (bsp *BaseScenePolicy) CanAddCoin(s *Scene, p *Player, val int64) bool { return true } /*百人牛牛,百人金华多倍结算,且当前是减币的情况下,需要判断*/ -func (bsp *BaseScenePolicy) CanChangeCoinScene(s *Scene, p *Player) bool { return false } -func (bsp *BaseScenePolicy) CreateSceneExData(s *Scene) interface{} { return false } -func (bsp *BaseScenePolicy) CreatePlayerExData(s *Scene, p *Player) interface{} { return false } -func (bsp *BaseScenePolicy) PacketGameData(s *Scene) interface{} { return nil } -func (bsp *BaseScenePolicy) InterventionGame(s *Scene, data interface{}) interface{} { return nil } -func (bsp *BaseScenePolicy) NotifyGameState(s *Scene) {} -func (bsp *BaseScenePolicy) GetJackPotVal(s *Scene) int64 { return 0 } +func (bsp *BaseScenePolicy) GetSceneState(s *Scene, stateid int) SceneState { return G_BaseSceneState } +func (bsp *BaseScenePolicy) IsCompleted(s *Scene) bool { return false } +func (bsp *BaseScenePolicy) IsCanForceStart(s *Scene) bool { return false } +func (bsp *BaseScenePolicy) ForceStart(s *Scene) {} +func (bsp *BaseScenePolicy) CanAddCoin(s *Scene, p *Player, val int64) bool { return true } /*百人牛牛,百人金华多倍结算,且当前是减币的情况下,需要判断*/ +func (bsp *BaseScenePolicy) CanChangeCoinScene(s *Scene, p *Player) bool { return false } +func (bsp *BaseScenePolicy) NotifyGameState(s *Scene) {} +func (bsp *BaseScenePolicy) GetJackPotVal(s *Scene) int64 { return 0 } var G_BaseSceneState = &BaseSceneState{} diff --git a/gamesrv/gatesofolympus/action_gatesofolympus.go b/gamesrv/gatesofolympus/action_gatesofolympus.go new file mode 100644 index 0000000..0422af3 --- /dev/null +++ b/gamesrv/gatesofolympus/action_gatesofolympus.go @@ -0,0 +1,46 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +type CSGatesOfOlympusOpPacketFactory struct { +} +type CSGatesOfOlympusOpHandler struct { +} + +func (this *CSGatesOfOlympusOpPacketFactory) CreatePacket() interface{} { + pack := &gatesofolympus.CSGatesOfOlympusOp{} + return pack +} + +func (this *CSGatesOfOlympusOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if op, ok := data.(*gatesofolympus.CSGatesOfOlympusOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p.scene == nil") + return nil + } + if !scene.HasPlayer(p) { + return nil + } + if scene.GetScenePolicy() != nil { + scene.GetScenePolicy().OnPlayerOp(scene, p, int(op.GetOpCode()), op.GetParams()) + } + return nil + } + return nil +} +func init() { + common.RegisterHandler(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpHandler{}) + netlib.RegisterFactory(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpPacketFactory{}) +} diff --git a/gamesrv/gatesofolympus/playerdata_gatesofolympus.go b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go new file mode 100644 index 0000000..537ac3a --- /dev/null +++ b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go @@ -0,0 +1,68 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/slots" +) + +type GatesOfOlympusPlayerData struct { + *base.Player + base.LabaLog + leaveTime int32 //离开时间 + SlotsSession *base.SlotsSession + + BetSizeIndex int64 `json:"bsi"` //选中的单注下标 + BetLevelIndex int64 `json:"bli"` //选中的等级下标 + BetLineIndex int64 `json:"bii"` //选中的线数下标 + BetMode int64 `json:"bm,optional"` //0.常规 1.%125 2.购买 + + taxCoin int64 + winCoin int64 + currentLogId string + totalBet int64 + + isFree bool //只用于判断是否可以离开 +} +type LinkPositions struct { + Positions []int64 `json:"Positions,omitempty"` +} +type CustomEliminate struct { + LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} +type SpinLock struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +func (p *GatesOfOlympusPlayerData) init() { + p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*gatesofolympus.NowByte) +} +func (p *GatesOfOlympusPlayerData) Clear() { + p.taxCoin = 0 + p.winCoin = 0 + p.currentLogId = "" + p.LabaLog.Clear() +} + +// 需要带到world上进行数据处理 +func (p *GatesOfOlympusPlayerData) PushPlayer() map[string]string { + cache := slots.SlotsMgrSington.PushPlayer(p.SlotsSession) + return cache +} + +// 进房的时候需要带进来 +func (p *GatesOfOlympusPlayerData) PullPlayer(data map[string]string) { + slots.SlotsMgrSington.PullPlayer(p.SlotsSession, data) +} diff --git a/gamesrv/gatesofolympus/scenedata_gatesofolympus.go b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go new file mode 100644 index 0000000..2d75fa1 --- /dev/null +++ b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go @@ -0,0 +1,45 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" +) + +type GatesOfOlympusSceneData struct { + *base.Scene //场景 + players map[int32]*GatesOfOlympusPlayerData //玩家信息 + BetConfig *assemble.BetConfig +} + +func NewGatesOfOlympusSceneData(s *base.Scene) *GatesOfOlympusSceneData { + sceneEx := &GatesOfOlympusSceneData{ + Scene: s, + players: make(map[int32]*GatesOfOlympusPlayerData), + } + sceneEx.Init() + return sceneEx +} +func (s *GatesOfOlympusSceneData) Init() { + +} + +func (s *GatesOfOlympusSceneData) Clear() { + //应该是水池变一次就判断修改一次 + //s.slotRateWeight = s.slotRateWeightTotal[0] +} +func (s *GatesOfOlympusSceneData) SceneDestroy(force bool) { + //销毁房间 + s.Scene.Destroy(force) +} + +func (s *GatesOfOlympusSceneData) delPlayer(SnId int32) { + if _, exist := s.players[SnId]; exist { + delete(s.players, SnId) + } +} +func (s *GatesOfOlympusSceneData) OnPlayerLeave(p *base.Player, reason int) { + if /*playerEx*/ _, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + + } + s.delPlayer(p.SnId) +} diff --git a/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go new file mode 100644 index 0000000..b878255 --- /dev/null +++ b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go @@ -0,0 +1,585 @@ +package gatesofolympus + +import ( + "encoding/json" + "mongo.games.com/game/common" + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" + "mongo.games.com/game/gamesrv/slotspkg/slots" + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + protocol "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/game/protocol/server" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "time" +) + +// //////////////////////////////////////////////////////////// +var ScenePolicyGatesOfOlympusSington = &ScenePolicyGatesOfOlympus{} + +type ScenePolicyGatesOfOlympus struct { + base.BaseScenePolicy + states [gatesofolympus.GatesOfOlympusStateMax]base.SceneState +} + +// 创建场景扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreateSceneExData(s *base.Scene) interface{} { + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + } + } + return sceneEx +} + +// 创建玩家扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreatePlayerExData(s *base.Scene, p *base.Player) interface{} { + playerEx := &GatesOfOlympusPlayerData{Player: p} + p.SetExtraData(playerEx) + return playerEx +} + +// 场景开启事件 +func (this *ScenePolicyGatesOfOlympus) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + s.ChangeSceneState(gatesofolympus.GatesOfOlympusStateStart) + } + } +} + +// 场景关闭事件 +func (this *ScenePolicyGatesOfOlympus) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStop , sceneId=", s.GetSceneId()) +} + +// 场景心跳事件 +func (this *ScenePolicyGatesOfOlympus) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.GetSceneState() != nil { + s.GetSceneState().OnTick(s) + } +} + +// 玩家进入事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + playerEx := &GatesOfOlympusPlayerData{Player: p} + + playerEx.init() + + d := p.GameData[gatesofolympus.GameDataKey] + if d != nil { + m := make(map[string]string) + json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } else { + m := make(map[string]string) + //json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } + + playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + + playerEx.Clear() + + sceneEx.players[p.SnId] = playerEx + + p.SetExtraData(playerEx) + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) + } +} + +// 玩家离开事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + if playerEx, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + playerEx.LabaLog.Save(2) // 没有收到结束消息,算2秒游戏时长 + m := playerEx.PushPlayer() + if m != nil && len(m) > 0 { + b, err := json.Marshal(m) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error:", err) + } else { + p.GameData[gatesofolympus.GameDataKey] = &model.PlayerGameData{ + Platform: p.Platform, + SnId: p.SnId, + Id: gatesofolympus.GameDataKey, + Data: b, + } + } + } + } + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) + sceneEx.OnPlayerLeave(p, reason) + } +} + +// 玩家掉线 +func (this *ScenePolicyGatesOfOlympus) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +// 玩家重连 +func (this *ScenePolicyGatesOfOlympus) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + } + } +} + +// 返回房间 +func (this *ScenePolicyGatesOfOlympus) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerReturn, GetSceneId()=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + //if p.IsMarkFlag(base.PlayerState_Auto) { + // p.UnmarkFlag(base.PlayerState_Auto) + // p.SyncFlag() + //} + //发送房间信息给自己 + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) + } + } +} + +func GatesOfOlympusSendRoomInfo(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) { + pack := GatesOfOlympusCreateRoomInfoPacket(s, sceneEx, playerEx) + logger.Logger.Trace("RoomInfo: ", pack) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO), pack) +} +func GatesOfOlympusCreateRoomInfoPacket(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) interface{} { + //房间信息 + pack := &protocol.SCGatesOfOlympusRoomInfo{ + RoomId: s.SceneId, + GameId: s.GameId, + RoomMode: s.SceneMode, + SceneType: s.GetSceneType(), + Params: common.CopySliceInt64ToInt32(s.Params), + NumOfGames: proto.Int(sceneEx.NumOfGames), + State: proto.Int(s.SceneState.GetState()), + ParamsEx: s.GetDBGameFree().OtherIntParams, + GameFreeId: proto.Int32(s.GetDBGameFree().Id), + //BetLimit: s.GetDBGameFree().BetLimit, + } + + //自己的信息 + if playerEx != nil { + pd := &protocol.GatesOfOlympusPlayerData{ + SnId: proto.Int32(playerEx.SnId), + Name: proto.String(playerEx.Name), + Head: proto.Int32(playerEx.Head), + Sex: proto.Int32(playerEx.Sex), + Coin: proto.Int64(playerEx.Coin), + Pos: proto.Int(playerEx.Pos), + Flag: proto.Int(playerEx.GetFlag()), + City: proto.String(playerEx.City), + HeadOutLine: proto.Int32(playerEx.HeadOutLine), + VIP: proto.Int32(playerEx.VIP), + } + pack.Player = pd + } + + //get data + Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId)) + if err == nil { + data := assemble.DataToCli(Response).(assemble.TableInfo) + pi, _ := json.Marshal(data) + pack.PlayerInfo = string(pi) + if sceneEx.BetConfig == nil { + sceneEx.BetConfig = &data.BetConfig + } + } else { + logger.Logger.Error("slots enter err:", err) + } + proto.SetDefaults(pack) + return pack +} +func (this *ScenePolicyGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.GetSceneState() != nil { + if s.GetSceneState().OnPlayerOp(s, p, opcode, params) { + p.SetLastOPTimer(time.Now()) + return true + } + return false + } + return true +} + +func (this *ScenePolicyGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.GetSceneState() != nil { + s.GetSceneState().OnPlayerEvent(s, p, evtcode, params) + } +} + +// 当前状态能否换桌 +func (this *ScenePolicyGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.GetSceneState() != nil { + return s.GetSceneState().CanChangeCoinScene(s, p) + } + return false +} + +// 状态基类 +type SceneBaseStateGatesOfOlympus struct { +} + +func (this *SceneBaseStateGatesOfOlympus) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + return int(time.Now().Sub(sceneEx.GetStateStartTime()) / time.Second) + } + return 0 +} + +func (this *SceneBaseStateGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return true +} + +// 当前状态能否换桌 +func (this *SceneBaseStateGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} +func (this *SceneBaseStateGatesOfOlympus) OnEnter(s *base.Scene) { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetStateStartTime(time.Now()) + } +} + +func (this *SceneBaseStateGatesOfOlympus) OnLeave(s *base.Scene) {} +func (this *SceneBaseStateGatesOfOlympus) OnTick(s *base.Scene) { + if time.Now().Sub(s.GameStartTime) > time.Second*3 { + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + for _, p := range sceneEx.players { + if p.IsOnLine() { + p.leaveTime = 0 + continue + } + p.leaveTime++ + if p.leaveTime < 60*2 { + continue + } + //踢出玩家 + sceneEx.PlayerLeave(p.Player, common.PlayerLeaveReason_LongTimeNoOp, true) + } + } + s.GameStartTime = time.Now() + } +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + return false +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { +} + +// //////////////////////////////////////////////////////////// +// 开始状态 +// //////////////////////////////////////////////////////////// +type SceneStateStartGatesOfOlympus struct { + SceneBaseStateGatesOfOlympus +} + +func (this *SceneStateStartGatesOfOlympus) GetState() int { + return gatesofolympus.GatesOfOlympusStateStart +} + +func (this *SceneStateStartGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return false +} + +// 当前状态能否换桌 +func (this *SceneStateStartGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + if playerEx.isFree { + return false + } + } + return true +} + +func (this *SceneStateStartGatesOfOlympus) GetTimeout(s *base.Scene) int { + return 0 +} + +func (this *SceneStateStartGatesOfOlympus) OnEnter(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnEnter(s) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetGameNowTime(time.Now()) + } +} + +// 状态离开时 +func (this *SceneStateStartGatesOfOlympus) OnLeave(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnLeave(s) + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnLeave, sceneid=%v", s.GetSceneId()) +} + +// 玩家操作 +func (this *SceneStateStartGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnPlayerOp, sceneid=%v params=%v", s.GetSceneId(), params) + if this.SceneBaseStateGatesOfOlympus.OnPlayerOp(s, p, opcode, params) { + return true + } + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + switch opcode { + case gatesofolympus.GatesOfOlympusPlayerOpStart: + playerEx.Clear() + if len(params) < 4 { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + playerEx.BetSizeIndex = params[0] + playerEx.BetLevelIndex = params[1] + playerEx.BetLineIndex = params[2] + playerEx.BetMode = params[3] + needCoin := sceneEx.BetConfig.BetSize[params[0]] * float64(sceneEx.BetConfig.BetLevel[params[1]]) * + float64(sceneEx.BetConfig.BetLines[params[2]]) * float64(sceneEx.BetConfig.BaseBet[params[2]]) + if needCoin > float64(playerEx.Coin) && !playerEx.isFree { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled:", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + + //playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + //logger.Logger.Trace("=============init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/gatesofolympus.NowByte) + + //get data + Response, err := slots.SlotsMgrSington.Play(playerEx.SlotsSession, &base.SpinReq{ + GameId: int64(sceneEx.GameId), + BetSizeIndex: playerEx.BetSizeIndex, + BetLevelIndex: playerEx.BetLevelIndex, + BetLineIndex: playerEx.BetLineIndex, + BetMode: playerEx.BetMode, + Ts: time.Now().Unix(), + }) + var gameEndStr string + var data assemble.GameEnd + if err == nil { + s.SetGameNowTime(time.Now()) + data = assemble.DataToCli(Response).(assemble.GameEnd) + + data.BetSizeIndex = playerEx.BetSizeIndex + data.BetLevelIndex = playerEx.BetLevelIndex + data.LinesIndex = playerEx.BetLineIndex + //data.BaseBetIndex = 1 + + data.Results[0].BetMode = playerEx.BetMode + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====TotalBet===", -data.TotalBet) + //第一次触发或者正常模式 + playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(data.TotalBet) + } + var taxCoin float64 + if data.RoundReward > 0 { + //税收比例 + taxRate := sceneEx.GetDBGameFree().GetTaxRate() + if taxRate < 0 || taxRate > 10000 { + taxRate = 500 + } + taxCoin = data.RoundReward * float64(taxRate) / 10000 + data.RoundReward = data.RoundReward - taxCoin + playerEx.AddServiceFee(int64(taxCoin)) + playerEx.taxCoin = int64(taxCoin) + playerEx.winCoin = int64(data.RoundReward) + } + pi, _ := json.Marshal(data) + gameEndStr = string(pi) + + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====RoundReward===", data.RoundReward) + playerEx.AddCoin(int64(data.RoundReward), common.GainWay_HundredSceneWin, 0, "system", s.GetSceneName()) + //免费游戏结束或者正常模式 + sceneEx.StaticsLaba(&base.StaticLabaParam{ + SnId: playerEx.SnId, + Gain: int64(data.RoundReward - data.TotalBet), + GainTax: int64(taxCoin), + IsAddTimes: true, + }) + } + if data.Results[0].FreeNum > 0 { + playerEx.isFree = true + } else { + playerEx.isFree = false + } + } else { + logger.Logger.Error("slots Play err:", err) + } + + playerEx.SlotsSession.SetCoin(int64(data.FinalCoin) * gatesofolympus.NowByte) + //logger.Logger.Trace("=====================end===== playerEx.Coin===", playerEx.Coin) + //logger.Logger.Trace("=====================end===== data.FinalCoin===", data.FinalCoin) + + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(0), + GameEndStr: proto.String(gameEndStr), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + + if playerEx.Coin != int64(data.FinalCoin) { + logger.Logger.Error("==========playerEx.Coin != Response.Coin==============", playerEx.Coin, data.FinalCoin) + } + + // 记录本次操作 + GatesOfOlympusAndSaveLog(sceneEx, playerEx, data) + case 1000: + playerEx.Save(0) + } + } + } + return true +} + +// 玩家事件 +func (this *SceneStateStartGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + logger.Logger.Trace("(this *SceneStateStartGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " evtcode=", evtcode) + this.SceneBaseStateGatesOfOlympus.OnPlayerEvent(s, p, evtcode, params) +} + +func (this *SceneStateStartGatesOfOlympus) OnTick(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnTick(s) +} + +// ////////////////////////////////////////////////////////////////////////////// +func (this *ScenePolicyGatesOfOlympus) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + stateid := state.GetState() + if stateid < 0 || stateid >= gatesofolympus.GatesOfOlympusStateMax { + return + } + this.states[stateid] = state +} + +func (this *ScenePolicyGatesOfOlympus) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < gatesofolympus.GatesOfOlympusStateMax { + return this.states[stateid] + } + return nil +} +func GatesOfOlympusAndSaveLog(sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData, data assemble.GameEnd) { + if !playerEx.IsRob { + data.SnId = playerEx.SnId + if data.Results[0].FreeStatus != 1 && data.Results[0].FreeNumMax != 0 { + data.TotalBet = 0 + } + info, err := model.MarshalGameNoteByROLL(data) + if err == nil { + logid, _ := model.AutoIncGameLogId() + playerEx.currentLogId = logid + var totalin, totalout int64 + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + totalin = playerEx.totalBet + } + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + totalout = int64(data.RoundReward) + playerEx.taxCoin + } + playerEx.Cache(sceneEx.Scene, &base.SaveGameDetailedParam{ + LogId: logid, + Detail: info, + }, &base.SaveGamePlayerListLogParam{ + LogId: logid, + Platform: playerEx.Platform, + Snid: playerEx.SnId, + PlayerName: playerEx.Name, + TotalIn: totalin, + TotalOut: totalout, + TaxCoin: playerEx.taxCoin, + BetAmount: totalin, + WinAmountNoAnyTax: totalout - totalin - playerEx.taxCoin, + IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player), + IsFree: playerEx.isFree, + }) + } + } + + //统计输下注金币数 + if !sceneEx.Testing && !playerEx.IsRob { + playerBet := &server.PlayerData{ + SnId: proto.Int32(playerEx.SnId), + Bet: proto.Int64(playerEx.CurrentBet), + Gain: proto.Int64(int64(data.RoundReward) + playerEx.taxCoin), + Tax: proto.Int64(playerEx.taxCoin), + Coin: proto.Int64(playerEx.GetCoin()), + GameCoinTs: proto.Int64(playerEx.GameCoinTs), + } + gwPlayerBet := &server.GWPlayerData{ + SceneId: sceneEx.SceneId, + GameFreeId: proto.Int32(sceneEx.GetDBGameFree().GetId()), + } + gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet) + sceneEx.SyncPlayerDatas(&base.PlayerDataParam{ + HasRobotGaming: false, + Data: gwPlayerBet, + }) + } + + playerEx.taxCoin = 0 + playerEx.winCoin = 0 + + if sceneEx.CheckNeedDestroy() && data.Results[0].FreeNum <= 0 { + sceneEx.SceneDestroy(true) + } +} +func init() { + //主状态 + ScenePolicyGatesOfOlympusSington.RegisteSceneState(&SceneStateStartGatesOfOlympus{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_GatesOfOlympus, gatesofolympus.RoomMode_Classic, ScenePolicyGatesOfOlympusSington) + return nil + }) +} diff --git a/gamesrv/main.go b/gamesrv/main.go index 5a06e0d..f1764d5 100644 --- a/gamesrv/main.go +++ b/gamesrv/main.go @@ -36,6 +36,7 @@ import ( _ "mongo.games.com/game/gamesrv/fortunerabbit" _ "mongo.games.com/game/gamesrv/fortunetiger" _ "mongo.games.com/game/gamesrv/fruits" + _ "mongo.games.com/game/gamesrv/gatesofolympus" _ "mongo.games.com/game/gamesrv/iceage" _ "mongo.games.com/game/gamesrv/richblessed" _ "mongo.games.com/game/gamesrv/slotspkg/slots" diff --git a/gamesrv/pushcoin/action.go b/gamesrv/pushcoin/action.go new file mode 100644 index 0000000..2754ae6 --- /dev/null +++ b/gamesrv/pushcoin/action.go @@ -0,0 +1,42 @@ +package thirteen + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/pushcoin" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +func init() { + common.Register(int(pushcoin.PushCoinPacketID_PACKET_CSPushCoinPlayerOp), &pushcoin.CSPushCoinPlayerOp{}, CSPushCoinPlayerOp) +} + +func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSPlayerOpHandler Process recv ", data) + if msg, ok := data.(*pushcoin.CSPushCoinPlayerOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSPlayerOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSPlayerOpHandler p.scene == nil") + return nil + } + if scene.KeyGameDif != common.GameDifPushCoin { + logger.Logger.Error("CSPlayerOpHandler gameId Error ", scene.GameId) + return nil + } + if !scene.HasPlayer(p) { + return nil + } + sp := scene.GetScenePolicy() + if sp != nil { + sp.OnPlayerOp(scene, p, int(msg.GetOpCode()), msg.GetOpParam()) + } + return nil + } + return nil +} diff --git a/gamesrv/pushcoin/player.go b/gamesrv/pushcoin/player.go new file mode 100644 index 0000000..3974e81 --- /dev/null +++ b/gamesrv/pushcoin/player.go @@ -0,0 +1,25 @@ +package thirteen + +import ( + "mongo.games.com/game/gamesrv/base" +) + +type GameData struct { + Shake int32 // 震动次数 + Refresh int64 // 刷新次数 + Power int64 // 能量值 + Base int64 // 底注 +} + +type PlayerEx struct { + *base.Player //玩家信息 + *GameData +} + +func NewPushCoinPlayerData(p *base.Player, data *GameData) *PlayerEx { + playerEx := &PlayerEx{ + Player: p, + GameData: data, + } + return playerEx +} diff --git a/gamesrv/pushcoin/scene.go b/gamesrv/pushcoin/scene.go new file mode 100644 index 0000000..8be1f21 --- /dev/null +++ b/gamesrv/pushcoin/scene.go @@ -0,0 +1,74 @@ +package thirteen + +import ( + "mongo.games.com/game/common" + rule "mongo.games.com/game/gamerule/pushcoin" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/pushcoin" + "mongo.games.com/game/srvdata" +) + +type SceneEx struct { + *base.Scene //场景 +} + +func NewPushCoinSceneData(s *base.Scene) *SceneEx { + sceneEx := &SceneEx{ + Scene: s, + } + return sceneEx +} + +func (this *SceneEx) CreateRoomInfoPacket(s *base.Scene, p *base.Player) *pushcoin.SCPushCoinRoomInfo { + playerEx, ok := p.ExtraData.(*PlayerEx) + if !ok { + return nil + } + + roomInfo := &pushcoin.SCPushCoinRoomInfo{ + RoomId: int32(s.GetSceneId()), + GameId: s.GameId, + RoomMode: int32(s.GetSceneMode()), + Params: common.CopySliceInt64ToInt32(s.GetParams()), + State: int32(s.GetSceneState().GetState()), + TimeOut: int32(s.GetSceneState().GetTimeout(s)), + BetList: s.GetDBGameFree().GetOtherIntParams(), + } + + player := pushcoin.PushCoinPlayerData{ + Name: p.Name, + SnId: p.SnId, + Head: p.Head, + Sex: p.Sex, + Coin: p.Coin, + Flag: int32(p.Flags), + VIP: p.VIP, + RoleId: p.Roles.ModId, + Level: p.Level, + Exp: p.Exp, + ShakeTimes: playerEx.Shake, + BaseCoin: playerEx.Base, + PowerLine: playerEx.Power, + PowerLineMax: rule.PowerMax, + RefreshTimes: playerEx.Refresh, + } + if p.Roles != nil { + player.RoleId = p.Roles.ModId + } + if p.Skin != nil { + player.SkinId = p.Skin.ModId + } + + roomInfo.Players = append(roomInfo.Players, &player) + + for _, v := range srvdata.PBDB_PropExchangeMgr.Datas.Arr { + if v.GetGroup() == 2 { + roomInfo.ExchangeList = append(roomInfo.ExchangeList, &pushcoin.ExchangeInfo{ + Id: v.GetId(), + }) + } + } + + return roomInfo + +} diff --git a/gamesrv/pushcoin/scenepolicy.go b/gamesrv/pushcoin/scenepolicy.go new file mode 100644 index 0000000..d92a042 --- /dev/null +++ b/gamesrv/pushcoin/scenepolicy.go @@ -0,0 +1,332 @@ +package thirteen + +import ( + "encoding/json" + "time" + + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/common" + rule "mongo.games.com/game/gamerule/pushcoin" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/model" + "mongo.games.com/game/protocol/pushcoin" +) + +var PolicySingleton = &Policy{} + +type Policy struct { + base.BaseScenePolicy + states [rule.GameStateMax]base.SceneState +} + +func (this *Policy) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *PushCoinPolicy) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewPushCoinSceneData(s) + if sceneEx != nil { + s.ExtraData = sceneEx + s.ChangeSceneState(rule.GameStatePlay) + } +} + +func (this *Policy) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *Policy) OnStop , sceneId=", s.GetSceneId()) +} + +func (this *Policy) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.SceneState != nil { + s.SceneState.OnTick(s) + } +} + +func (this *Policy) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.SnId) + sceneEx, ok := s.ExtraData.(*SceneEx) + if !ok { + return + } + + data := p.GDatas[s.KeyGamefreeId] + if data == nil { + data = &model.PlayerGameInfo{} + p.GDatas[s.KeyGamefreeId] = data + } + + gamedata := &GameData{} + if data.DataEx != nil { + err := json.Unmarshal(data.DataEx, gamedata) + if err != nil { + logger.Logger.Error("OnPlayerEnter, json.Unmarshal error, err=", err) + return + } + } else { + // 底注 + baseCoins := s.GetDBGameFree().GetOtherIntParams() + if len(baseCoins) > 0 { + gamedata.Base = baseCoins[0] + } else { + gamedata.Base = 5000 + } + gamedata.Power = rule.PowerInit + } + + p.ExtraData = NewPushCoinPlayerData(p, gamedata) + //给自己发送房间信息 + this.SendRoomInfo(s, p, sceneEx) + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) +} + +func (this *Policy) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + + playerEx, ok := p.ExtraData.(*PlayerEx) + if !ok { + return + } + + data := p.GDatas[s.KeyGamefreeId] + if data == nil { + data = &model.PlayerGameInfo{} + p.GDatas[s.KeyGamefreeId] = data + } + + b, err := json.Marshal(playerEx.GameData) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error, err=", err) + return + } + data.DataEx = b + + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) +} + +func (this *Policy) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +func (this *Policy) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + sceneEx, ok := s.ExtraData.(*SceneEx) + if !ok { + return + } + this.SendRoomInfo(s, p, sceneEx) + s.FirePlayerEvent(p, base.PlayerEventRehold, nil) +} + +func (this *Policy) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + sceneEx, ok := s.ExtraData.(*SceneEx) + if !ok { + return + } + this.SendRoomInfo(s, p, sceneEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) +} + +func (this *Policy) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *Policy) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.SceneState != nil { + p.LastOPTimer = time.Now() + return s.SceneState.OnPlayerOp(s, p, opcode, params) + } + return true +} + +func (this *Policy) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.SceneState != nil { + s.SceneState.OnPlayerEvent(s, p, evtcode, params) + } +} + +func (this *Policy) OnAudienceEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnAudienceEnter, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.ExtraData.(*SceneEx); ok { + //给自己发送房间信息 + this.SendRoomInfo(s, p, sceneEx) + s.FirePlayerEvent(p, base.AudienceEventEnter, nil) + } +} + +func (this *Policy) OnAudienceLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnAudienceLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.AudienceEventLeave, nil) +} + +func (this *Policy) OnAudienceDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *Policy) OnAudienceDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.AudienceLeave(p, common.PlayerLeaveReason_DropLine) + s.FirePlayerEvent(p, base.AudienceEventDropLine, nil) +} + +func (this *Policy) OnAudienceSit(s *base.Scene, p *base.Player) { + +} + +func (this *Policy) IsCompleted(s *base.Scene) bool { + return true +} + +func (this *Policy) IsCanForceStart(s *base.Scene) bool { + return true +} + +func (this *Policy) ForceStart(s *base.Scene) { + +} + +func (this *Policy) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.SceneState != nil { + return s.SceneState.CanChangeCoinScene(s, p) + } + return false +} + +func (this *Policy) SendRoomInfo(s *base.Scene, p *base.Player, sceneEx *SceneEx) { + pack := sceneEx.CreateRoomInfoPacket(s, p) + p.SendToClient(int(pushcoin.PushCoinPacketID_PACKET_SCPushCoinRoomInfo), pack) +} + +//===================================== +// StateGaming 游戏中 +//===================================== + +type StateGaming struct { +} + +func (this *StateGaming) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} + +func (this *StateGaming) OnLeave(s *base.Scene) { + +} + +func (this *StateGaming) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + +} + +func (this *StateGaming) GetState() int { + return rule.GameStatePlay +} + +func (this *StateGaming) CanChangeTo(s base.SceneState) bool { + return true +} + +func (this *StateGaming) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*SceneEx); ok { + return int(time.Now().Sub(sceneEx.StateStartTime) / time.Second) + } + return 0 +} + +func (this *StateGaming) OnEnter(s *base.Scene) { + +} + +func (this *StateGaming) OnTick(s *base.Scene) { + +} + +func (this *StateGaming) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Trace("(this *StateGaming) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + _, ok := s.ExtraData.(*SceneEx) + if !ok { + return false + } + _, ok = p.ExtraData.(*PlayerEx) + if !ok { + return false + } + + pack := &pushcoin.SCPushCoinPlayerOp{ + OpRetCode: pushcoin.OpResultCode_OPRC_Error, + OpCode: pushcoin.OpCodes(opcode), + } + + switch pushcoin.OpCodes(opcode) { + case pushcoin.OpCodes_OP_Bet: + + case pushcoin.OpCodes_OP_Gain: + + case pushcoin.OpCodes_OP_Shake: + + case pushcoin.OpCodes_OP_Refresh: + + case pushcoin.OpCodes_OP_Exchange: + + case pushcoin.OpCodes_OP_Draw: + + default: + return true + } + + p.SendToClient(int(pushcoin.PushCoinPacketID_PACKET_SCPushCoinPlayerOp), pack) + return true +} + +func (this *Policy) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + id := state.GetState() + if id < 0 || id >= rule.GameStateMax { + return + } + this.states[id] = state +} + +func (this *Policy) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < rule.GameStateMax { + return this.states[stateid] + } + return nil +} + +func init() { + PolicySingleton.RegisteSceneState(&StateGaming{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_PushCoin, 0, PolicySingleton) + return nil + }) +} diff --git a/gamesrv/slotspkg/assemble/difgame.go b/gamesrv/slotspkg/assemble/difgame.go index 721eec1..9736274 100644 --- a/gamesrv/slotspkg/assemble/difgame.go +++ b/gamesrv/slotspkg/assemble/difgame.go @@ -12,6 +12,7 @@ type CustomFortune struct { FreeNumMax int64 `json:"fnm"` //总次数 FreeNumTrigger int64 `json:"fnt"` //新增freespin ForceRound int64 `json:"fr"` //第n次 + ScatterWin int64 `json:"sw,omitempty"` } func getDataByTheme(NodeTree *shared.LiteNodeTree) (map[int64]*shared.SpinLock, CustomFortune, int64) { diff --git a/gamesrv/slotspkg/external/ExportGoConfig-mac.sh b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh new file mode 100644 index 0000000..9b911a2 --- /dev/null +++ b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# 检查 "external" 目录是否存在,如果存在,则进入目录 +if [ -d "external" ]; then + cd external +fi + +# 检查 converter 文件是否存在 +if [ ! -f "converter" ]; then + echo "Building converter..." + go build -o converter ../tools/converter +else + echo "converter already exists." +fi + +# 执行 converter 文件 +./converter go /excel ../internal/exported/excel2go .. + +echo "Done." +read -p "Press [Enter] to exit..." +exit 0 \ No newline at end of file diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx new file mode 100644 index 0000000..d7734ae Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx new file mode 100644 index 0000000..31bd28b Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx new file mode 100644 index 0000000..59e9819 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx new file mode 100644 index 0000000..b67124f Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx new file mode 100644 index 0000000..a4f53ef Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx new file mode 100644 index 0000000..35ec79a Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx new file mode 100644 index 0000000..c54dbc2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx new file mode 100644 index 0000000..aa0b3e2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx new file mode 100644 index 0000000..59930bd Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx new file mode 100644 index 0000000..fb87571 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx new file mode 100644 index 0000000..db126a2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx new file mode 100644 index 0000000..ccb274e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx new file mode 100644 index 0000000..add7877 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx new file mode 100644 index 0000000..f20b84a Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx new file mode 100644 index 0000000..49abd74 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx new file mode 100644 index 0000000..f12c84e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx new file mode 100644 index 0000000..a31818e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx differ diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go index 868f814..ff48968 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 1, BaseBet: 10, }, @@ -141,55 +141,55 @@ func init() { CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } CashManiaFormation = []*structs.CashManiaFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 2, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -197,124 +197,124 @@ func init() { CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{ 1: { - Index: 1, + Index: 1, ItemID: 1, - Value: 10, - IsMid: false, + Value: 10, + IsMid: false, }, 2: { - Index: 2, + Index: 2, ItemID: 2, - Value: 5, - IsMid: false, + Value: 5, + IsMid: false, }, 3: { - Index: 3, + Index: 3, ItemID: 3, - Value: 1, - IsMid: false, + Value: 1, + IsMid: false, }, 4: { - Index: 4, + Index: 4, ItemID: 4, - Value: 0.5, - IsMid: false, + Value: 0.5, + IsMid: false, }, 5: { - Index: 5, + Index: 5, ItemID: 5, - Value: 0.1, - IsMid: false, + Value: 0.1, + IsMid: false, }, 6: { - Index: 6, + Index: 6, ItemID: 6, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 7: { - Index: 7, + Index: 7, ItemID: 7, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 8: { - Index: 8, + Index: 8, ItemID: 8, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 9: { - Index: 9, + Index: 9, ItemID: 9, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 10: { - Index: 10, + Index: 10, ItemID: 10, - Value: 2, - IsMid: true, + Value: 2, + IsMid: true, }, 11: { - Index: 11, + Index: 11, ItemID: 11, - Value: 3, - IsMid: true, + Value: 3, + IsMid: true, }, 12: { - Index: 12, + Index: 12, ItemID: 12, - Value: 5, - IsMid: true, + Value: 5, + IsMid: true, }, 13: { - Index: 13, + Index: 13, ItemID: 13, - Value: 10, - IsMid: true, + Value: 10, + IsMid: true, }, 14: { - Index: 14, + Index: 14, ItemID: 14, - Value: 15, - IsMid: true, + Value: 15, + IsMid: true, }, 15: { - Index: 15, + Index: 15, ItemID: 15, - Value: 20, - IsMid: true, + Value: 20, + IsMid: true, }, 16: { - Index: 16, + Index: 16, ItemID: 16, - Value: 30, - IsMid: true, + Value: 30, + IsMid: true, }, 17: { - Index: 17, + Index: 17, ItemID: 17, - Value: 40, - IsMid: true, + Value: 40, + IsMid: true, }, 18: { - Index: 18, + Index: 18, ItemID: 18, - Value: 50, - IsMid: true, + Value: 50, + IsMid: true, }, 19: { - Index: 19, + Index: 19, ItemID: 19, - Value: 100, - IsMid: true, + Value: 100, + IsMid: true, }, 200: { - Index: 200, + Index: 200, ItemID: 200, - Value: 0, - IsMid: true, + Value: 0, + IsMid: true, }, } @@ -323,164 +323,164 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{ 6: { - Index: 6, - ItemID: 6, - Multi: 1, + Index: 6, + ItemID: 6, + Multi: 1, FreeSpinCount: 5, }, 7: { - Index: 7, - ItemID: 7, - Multi: 1, + Index: 7, + ItemID: 7, + Multi: 1, FreeSpinCount: 10, }, 8: { - Index: 8, - ItemID: 8, - Multi: 1, + Index: 8, + ItemID: 8, + Multi: 1, FreeSpinCount: 20, }, 9: { - Index: 9, - ItemID: 9, - Multi: 1, + Index: 9, + ItemID: 9, + Multi: 1, FreeSpinCount: 0, }, 10: { - Index: 10, - ItemID: 10, - Multi: 2, + Index: 10, + ItemID: 10, + Multi: 2, FreeSpinCount: 0, }, 11: { - Index: 11, - ItemID: 11, - Multi: 3, + Index: 11, + ItemID: 11, + Multi: 3, FreeSpinCount: 0, }, 12: { - Index: 12, - ItemID: 12, - Multi: 5, + Index: 12, + ItemID: 12, + Multi: 5, FreeSpinCount: 0, }, 13: { - Index: 13, - ItemID: 13, - Multi: 10, + Index: 13, + ItemID: 13, + Multi: 10, FreeSpinCount: 0, }, 14: { - Index: 14, - ItemID: 14, - Multi: 15, + Index: 14, + ItemID: 14, + Multi: 15, FreeSpinCount: 0, }, 15: { - Index: 15, - ItemID: 15, - Multi: 20, + Index: 15, + ItemID: 15, + Multi: 20, FreeSpinCount: 0, }, 16: { - Index: 16, - ItemID: 16, - Multi: 30, + Index: 16, + ItemID: 16, + Multi: 30, FreeSpinCount: 0, }, 17: { - Index: 17, - ItemID: 17, - Multi: 40, + Index: 17, + ItemID: 17, + Multi: 40, FreeSpinCount: 0, }, 18: { - Index: 18, - ItemID: 18, - Multi: 50, + Index: 18, + ItemID: 18, + Multi: 50, FreeSpinCount: 0, }, 19: { - Index: 19, - ItemID: 19, - Multi: 100, + Index: 19, + ItemID: 19, + Multi: 100, FreeSpinCount: 0, }, } CashManiaOthers = []*structs.CashManiaOthers{ { - BaseWinPro: 0.15, - FreeWinPro: 0.15, - MaxWin: 2000, - WinNudgePro: 0.01, - WinRespinPro: 0.02, - NoWinNudgePro: 0.005, + BaseWinPro: 0.15, + FreeWinPro: 0.15, + MaxWin: 2000, + WinNudgePro: 0.01, + WinRespinPro: 0.02, + NoWinNudgePro: 0.005, NoWinRespinPro: 0.02, }, } CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 1, FreeWeight: 1, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 1, FreeWeight: 1, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 1, FreeWeight: 1, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 1, FreeWeight: 1, }, @@ -488,86 +488,86 @@ func init() { CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 12, FreeWeight: 12, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 4, FreeWeight: 4, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 33, FreeWeight: 33, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 50, FreeWeight: 50, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 50, FreeWeight: 50, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 50, FreeWeight: 50, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 50, FreeWeight: 50, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 50, FreeWeight: 50, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 50, FreeWeight: 50, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 50, FreeWeight: 50, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 50, FreeWeight: 50, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 50, FreeWeight: 50, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 50, FreeWeight: 50, }, @@ -591,184 +591,184 @@ func init() { CashManiaSymbol = map[int64]*structs.CashManiaSymbol{ 1: { - ID: 1, - Name: "10倍", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "10倍", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "5倍", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "5倍", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "1倍", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 10}, + ID: 3, + Name: "1倍", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 10}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "0.5倍", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 5}, + ID: 4, + Name: "0.5倍", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 5}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "0.1倍", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 1}, + ID: 5, + Name: "0.1倍", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 1}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "5FreeSpin", - IsWild: true, - Group: []int64{6}, - PayRate: []int64{0, 0, 0}, + ID: 6, + Name: "5FreeSpin", + IsWild: true, + Group: []int64{6}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "10FreeSpin", - IsWild: true, - Group: []int64{7}, - PayRate: []int64{0, 0, 0}, + ID: 7, + Name: "10FreeSpin", + IsWild: true, + Group: []int64{7}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "20FreeSpin", - IsWild: true, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "20FreeSpin", + IsWild: true, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "wildx1", - IsWild: true, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "wildx1", + IsWild: true, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "wildx2", - IsWild: true, - Group: []int64{10}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "wildx2", + IsWild: true, + Group: []int64{10}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 11: { - ID: 11, - Name: "wildx3", - IsWild: true, - Group: []int64{11}, - PayRate: []int64{0, 0, 0}, + ID: 11, + Name: "wildx3", + IsWild: true, + Group: []int64{11}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 12: { - ID: 12, - Name: "wildx5", - IsWild: true, - Group: []int64{12}, - PayRate: []int64{0, 0, 0}, + ID: 12, + Name: "wildx5", + IsWild: true, + Group: []int64{12}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 13: { - ID: 13, - Name: "wildx10", - IsWild: true, - Group: []int64{13}, - PayRate: []int64{0, 0, 0}, + ID: 13, + Name: "wildx10", + IsWild: true, + Group: []int64{13}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 14: { - ID: 14, - Name: "wildx15", - IsWild: true, - Group: []int64{14}, - PayRate: []int64{0, 0, 0}, + ID: 14, + Name: "wildx15", + IsWild: true, + Group: []int64{14}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 15: { - ID: 15, - Name: "wildx20", - IsWild: true, - Group: []int64{15}, - PayRate: []int64{0, 0, 0}, + ID: 15, + Name: "wildx20", + IsWild: true, + Group: []int64{15}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 16: { - ID: 16, - Name: "wildx30", - IsWild: true, - Group: []int64{16}, - PayRate: []int64{0, 0, 0}, + ID: 16, + Name: "wildx30", + IsWild: true, + Group: []int64{16}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 17: { - ID: 17, - Name: "wildx40", - IsWild: true, - Group: []int64{17}, - PayRate: []int64{0, 0, 0}, + ID: 17, + Name: "wildx40", + IsWild: true, + Group: []int64{17}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 18: { - ID: 18, - Name: "wildx50", - IsWild: true, - Group: []int64{18}, - PayRate: []int64{0, 0, 0}, + ID: 18, + Name: "wildx50", + IsWild: true, + Group: []int64{18}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 19: { - ID: 19, - Name: "wildx100", - IsWild: true, - Group: []int64{19}, - PayRate: []int64{0, 0, 0}, + ID: 19, + Name: "wildx100", + IsWild: true, + Group: []int64{19}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -780,32 +780,32 @@ func init() { CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 8, FreeWeight: 18, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 18, FreeWeight: 15, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 18, FreeWeight: 36, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 28, FreeWeight: 29, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 28, FreeWeight: 27, }, @@ -813,89 +813,89 @@ func init() { CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 48, FreeWeight: 4, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 24, FreeWeight: 0, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 6, FreeWeight: 0, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 322, FreeWeight: 56, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 800, FreeWeight: 30, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 300, FreeWeight: 15, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 200, FreeWeight: 10, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 10, FreeWeight: 1, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 10, FreeWeight: 1, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 1, FreeWeight: 5, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 1, FreeWeight: 2, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 1, FreeWeight: 2, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 0, FreeWeight: 2, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 0, FreeWeight: 2, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go index 7d7804e..457a7eb 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go @@ -9,170 +9,170 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{ { - WinRateMin: 0, - WinRateMax: 0.01, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0, + WinRateMax: 0.01, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{140, 10, 20, 10}, }, { - WinRateMin: 0.01, - WinRateMax: 1, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0.01, + WinRateMax: 1, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{1689, 98, 176, 100}, }, { - WinRateMin: 1, - WinRateMax: 3, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 1, + WinRateMax: 3, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{60, 8, 10, 2}, }, { - WinRateMin: 3, - WinRateMax: 10, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 3, + WinRateMax: 10, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2883, 100, 100, 250}, }, { - WinRateMin: 10, - WinRateMax: 20, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 10, + WinRateMax: 20, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{820, 1585, 100, 10}, }, { - WinRateMin: 20, - WinRateMax: 999999, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 20, + WinRateMax: 999999, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2884, 8, 10, 287}, }, } FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -180,81 +180,81 @@ func init() { FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneDragonFormation = []*structs.FortuneDragonFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 1, - NodeType: "SureWinBaseSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinBaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "SureWinBaseSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinBaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "SureWinFreeSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinFreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "SureWinFreeSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinFreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -278,11 +278,11 @@ func init() { FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{ { MultiplierCount: 2, - Weight: 3, + Weight: 3, }, { MultiplierCount: 3, - Weight: 1, + Weight: 1, }, } @@ -291,44 +291,44 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneDragonOthers = []*structs.FortuneDragonOthers{ { - FreespinTriggerPro: 0.005, - FreeSpinCount: 8, - MaxWin: 2500, + FreespinTriggerPro: 0.005, + FreeSpinCount: 8, + MaxWin: 2500, SureWinFreespinTriggerPro: 0.0273, - SureWinBetMultiplier: 5, + SureWinBetMultiplier: 5, }, } @@ -398,103 +398,103 @@ func init() { FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{ 1: { - ID: 1, - Name: "Wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "Wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "灯笼", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "灯笼", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "福炮", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "福炮", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "花结", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "花结", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "铜钱", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "铜钱", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "X2", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "X2", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "X5", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "X5", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "X10", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "X10", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -504,4 +504,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go index 91f5598..8a06843 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneMouseFormation = []*structs.FortuneMouseFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneMouseOthers = []*structs.FortuneMouseOthers{ { RespinTriggerPro: 0.0123, - MaxWin: 1000, - ExtraWin: 700, + MaxWin: 1000, + ExtraWin: 700, }, } @@ -273,37 +273,37 @@ func init() { FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 3, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 5, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 7, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 8, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 9, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 10, }, @@ -311,76 +311,76 @@ func init() { FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 300}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 300}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "倒福", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "倒福", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 30}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 30}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "爆竹", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 15}, + ID: 5, + Name: "爆竹", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 15}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "花生", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "花生", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -390,4 +390,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go index 0a51f61..82d9173 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneOxFormation = []*structs.FortuneOxFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneOxOthers = []*structs.FortuneOxOthers{ { RespinTriggerPro: 0.0107, - Multiplier: 10, - MaxWin: 2000, + Multiplier: 10, + MaxWin: 2000, }, } @@ -273,37 +273,37 @@ func init() { FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 4, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 10, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 30, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 40, }, @@ -311,37 +311,37 @@ func init() { FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 2, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 3, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 4, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 5, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 6, }, @@ -349,85 +349,85 @@ func init() { FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "金锦盒", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "金锦盒", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 20}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 20}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 10}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 10}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "炮竹", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "炮竹", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack1", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack1", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "SuperStack2", - IsWild: false, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "SuperStack2", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -437,4 +437,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go index 48c8d7a..809fd22 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,156 +141,156 @@ func init() { FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{ { - ID: 1, - PrizeValue: 0.5, - Weight: 150, + ID: 1, + PrizeValue: 0.5, + Weight: 150, NoWinWeight: 100, }, { - ID: 2, - PrizeValue: 1, - Weight: 25, + ID: 2, + PrizeValue: 1, + Weight: 25, NoWinWeight: 25, }, { - ID: 3, - PrizeValue: 2, - Weight: 9, + ID: 3, + PrizeValue: 2, + Weight: 9, NoWinWeight: 9, }, { - ID: 4, - PrizeValue: 5, - Weight: 55, + ID: 4, + PrizeValue: 5, + Weight: 55, NoWinWeight: 55, }, { - ID: 5, - PrizeValue: 10, - Weight: 6, + ID: 5, + PrizeValue: 10, + Weight: 6, NoWinWeight: 12, }, { - ID: 6, - PrizeValue: 20, - Weight: 3, + ID: 6, + PrizeValue: 20, + Weight: 3, NoWinWeight: 9, }, { - ID: 7, - PrizeValue: 30, - Weight: 0.6, + ID: 7, + PrizeValue: 30, + Weight: 0.6, NoWinWeight: 6, }, { - ID: 8, - PrizeValue: 50, - Weight: 1, + ID: 8, + PrizeValue: 50, + Weight: 1, NoWinWeight: 3, }, { - ID: 9, - PrizeValue: 100, - Weight: 0.39, + ID: 9, + PrizeValue: 100, + Weight: 0.39, NoWinWeight: 0.9, }, { - ID: 10, - PrizeValue: 500, - Weight: 0.01, + ID: 10, + PrizeValue: 500, + Weight: 0.01, NoWinWeight: 0.1, }, } FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{ { - ID: 1, - Count: 5, + ID: 1, + Count: 5, Weight: 80, }, { - ID: 2, - Count: 6, + ID: 2, + Count: 6, Weight: 15, }, { - ID: 3, - Count: 7, + ID: 3, + Count: 7, Weight: 5, }, { - ID: 4, - Count: 8, + ID: 4, + Count: 8, Weight: 0, }, { - ID: 5, - Count: 9, + ID: 5, + Count: 9, Weight: 0, }, { - ID: 6, - Count: 10, + ID: 6, + Count: 10, Weight: 0, }, { - ID: 7, - Count: 11, + ID: 7, + Count: 11, Weight: 0, }, } FortuneRabbitFormation = []*structs.FortuneRabbitFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -301,58 +301,58 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 2: { - ID: 2, + ID: 2, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 3: { - ID: 3, + ID: 3, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneRabbitOthers = []*structs.FortuneRabbitOthers{ { FreespinTriggerPro: 0.0106, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{ { FreespinTriggerPro: 0.01785, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{ { FreespinTriggerPro: 0.00577, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } @@ -390,85 +390,85 @@ func init() { FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "钱袋", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "钱袋", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "红包", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "红包", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "铜币", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "铜币", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "胡萝卜", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "胡萝卜", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "Cash", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "Cash", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -478,4 +478,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go index 464f49e..d483857 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneTigerFormation = []*structs.FortuneTigerFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 4, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 4, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneTigerOthers = []*structs.FortuneTigerOthers{ { RespinTriggerPro: 0.0104, - Multiplier: 10, - MaxWin: 2500, + Multiplier: 10, + MaxWin: 2500, }, } @@ -273,37 +273,37 @@ func init() { FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 0.66, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 3.34, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 11, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 20, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 50, }, @@ -311,85 +311,85 @@ func init() { FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 250}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 250}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "玉饰", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "玉饰", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "福袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "福袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 8}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 8}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "橘子", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "橘子", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -399,4 +399,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go new file mode 100644 index 0000000..8d88753 --- /dev/null +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go @@ -0,0 +1,1339 @@ +//go:build !debug +// +build !debug + +// +package base + +import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + +func init() { + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{ + 0: { + Index: 0, + BetChangeList: 0.2, + BetSizeIndex: 0, + BetLevelIndex: 0, + }, + 1: { + Index: 1, + BetChangeList: 0.4, + BetSizeIndex: 0, + BetLevelIndex: 1, + }, + 2: { + Index: 2, + BetChangeList: 0.6, + BetSizeIndex: 0, + BetLevelIndex: 2, + }, + 3: { + Index: 3, + BetChangeList: 0.8, + BetSizeIndex: 0, + BetLevelIndex: 3, + }, + 4: { + Index: 4, + BetChangeList: 1, + BetSizeIndex: 0, + BetLevelIndex: 4, + }, + 5: { + Index: 5, + BetChangeList: 1.2, + BetSizeIndex: 0, + BetLevelIndex: 5, + }, + 6: { + Index: 6, + BetChangeList: 1.4, + BetSizeIndex: 0, + BetLevelIndex: 6, + }, + 7: { + Index: 7, + BetChangeList: 1.6, + BetSizeIndex: 0, + BetLevelIndex: 7, + }, + 8: { + Index: 8, + BetChangeList: 1.8, + BetSizeIndex: 0, + BetLevelIndex: 8, + }, + 9: { + Index: 9, + BetChangeList: 2, + BetSizeIndex: 0, + BetLevelIndex: 9, + }, + 10: { + Index: 10, + BetChangeList: 4, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + 11: { + Index: 11, + BetChangeList: 6, + BetSizeIndex: 1, + BetLevelIndex: 2, + }, + 12: { + Index: 12, + BetChangeList: 8, + BetSizeIndex: 1, + BetLevelIndex: 3, + }, + 13: { + Index: 13, + BetChangeList: 10, + BetSizeIndex: 1, + BetLevelIndex: 4, + }, + 14: { + Index: 14, + BetChangeList: 12, + BetSizeIndex: 1, + BetLevelIndex: 5, + }, + 15: { + Index: 15, + BetChangeList: 14, + BetSizeIndex: 1, + BetLevelIndex: 6, + }, + 16: { + Index: 16, + BetChangeList: 15, + BetSizeIndex: 4, + BetLevelIndex: 0, + }, + 17: { + Index: 17, + BetChangeList: 16, + BetSizeIndex: 1, + BetLevelIndex: 7, + }, + 18: { + Index: 18, + BetChangeList: 18, + BetSizeIndex: 1, + BetLevelIndex: 8, + }, + 19: { + Index: 19, + BetChangeList: 20, + BetSizeIndex: 1, + BetLevelIndex: 9, + }, + 20: { + Index: 20, + BetChangeList: 24, + BetSizeIndex: 2, + BetLevelIndex: 5, + }, + 21: { + Index: 21, + BetChangeList: 28, + BetSizeIndex: 2, + BetLevelIndex: 6, + }, + 22: { + Index: 22, + BetChangeList: 30, + BetSizeIndex: 3, + BetLevelIndex: 2, + }, + 23: { + Index: 23, + BetChangeList: 32, + BetSizeIndex: 2, + BetLevelIndex: 7, + }, + 24: { + Index: 24, + BetChangeList: 36, + BetSizeIndex: 2, + BetLevelIndex: 8, + }, + 25: { + Index: 25, + BetChangeList: 40, + BetSizeIndex: 2, + BetLevelIndex: 9, + }, + 26: { + Index: 26, + BetChangeList: 45, + BetSizeIndex: 4, + BetLevelIndex: 2, + }, + 27: { + Index: 27, + BetChangeList: 50, + BetSizeIndex: 3, + BetLevelIndex: 4, + }, + 28: { + Index: 28, + BetChangeList: 60, + BetSizeIndex: 3, + BetLevelIndex: 5, + }, + 29: { + Index: 29, + BetChangeList: 70, + BetSizeIndex: 3, + BetLevelIndex: 6, + }, + 30: { + Index: 30, + BetChangeList: 75, + BetSizeIndex: 4, + BetLevelIndex: 4, + }, + 31: { + Index: 31, + BetChangeList: 80, + BetSizeIndex: 3, + BetLevelIndex: 7, + }, + 32: { + Index: 32, + BetChangeList: 90, + BetSizeIndex: 3, + BetLevelIndex: 8, + }, + 33: { + Index: 33, + BetChangeList: 100, + BetSizeIndex: 3, + BetLevelIndex: 9, + }, + 34: { + Index: 34, + BetChangeList: 105, + BetSizeIndex: 4, + BetLevelIndex: 6, + }, + 35: { + Index: 35, + BetChangeList: 120, + BetSizeIndex: 4, + BetLevelIndex: 7, + }, + 36: { + Index: 36, + BetChangeList: 135, + BetSizeIndex: 4, + BetLevelIndex: 8, + }, + 37: { + Index: 37, + BetChangeList: 150, + BetSizeIndex: 4, + BetLevelIndex: 9, + }, + 38: { + Index: 38, + BetChangeList: 160, + BetSizeIndex: 5, + BetLevelIndex: 3, + }, + 39: { + Index: 39, + BetChangeList: 200, + BetSizeIndex: 5, + BetLevelIndex: 4, + }, + 40: { + Index: 40, + BetChangeList: 240, + BetSizeIndex: 5, + BetLevelIndex: 5, + }, + 41: { + Index: 41, + BetChangeList: 280, + BetSizeIndex: 5, + BetLevelIndex: 6, + }, + 42: { + Index: 42, + BetChangeList: 320, + BetSizeIndex: 5, + BetLevelIndex: 7, + }, + 43: { + Index: 43, + BetChangeList: 360, + BetSizeIndex: 5, + BetLevelIndex: 8, + }, + 44: { + Index: 44, + BetChangeList: 400, + BetSizeIndex: 5, + BetLevelIndex: 9, + }, + 45: { + Index: 45, + BetChangeList: 3, + BetSizeIndex: 6, + BetLevelIndex: 0, + }, + 46: { + Index: 46, + BetChangeList: 5, + BetSizeIndex: 7, + BetLevelIndex: 0, + }, + 47: { + Index: 47, + BetChangeList: 25, + BetSizeIndex: 8, + BetLevelIndex: 0, + }, + 48: { + Index: 48, + BetChangeList: 300, + BetSizeIndex: 9, + BetLevelIndex: 0, + }, + } + + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{ + 0: { + Index: 0, + BetLevel: 1, + }, + 1: { + Index: 1, + BetLevel: 2, + }, + 2: { + Index: 2, + BetLevel: 3, + }, + 3: { + Index: 3, + BetLevel: 4, + }, + 4: { + Index: 4, + BetLevel: 5, + }, + 5: { + Index: 5, + BetLevel: 6, + }, + 6: { + Index: 6, + BetLevel: 7, + }, + 7: { + Index: 7, + BetLevel: 8, + }, + 8: { + Index: 8, + BetLevel: 9, + }, + 9: { + Index: 9, + BetLevel: 10, + }, + } + + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{ + 0: { + Index: 0, + BetLine: 20, + BaseBet: 1, + }, + } + + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{ + 0: { + Index: 0, + BetSize: 100, + }, + 1: { + Index: 1, + BetSize: 1000, + }, + 2: { + Index: 2, + BetSize: 2000, + }, + 3: { + Index: 3, + BetSize: 5000, + }, + 4: { + Index: 4, + BetSize: 7500, + }, + 5: { + Index: 5, + BetSize: 20000, + }, + 6: { + Index: 6, + BetSize: 1500, + }, + 7: { + Index: 7, + BetSize: 2500, + }, + 8: { + Index: 8, + BetSize: 12500, + }, + 9: { + Index: 9, + BetSize: 150000, + }, + } + + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{ + 1: { + Index: 1, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + } + + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{ + { + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin4", + ID: 1, + SeqID: 1, + Reel: "FreeSpin4", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin5", + ID: 1, + SeqID: 1, + Reel: "FreeSpin5", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + } + + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{ + 1: { + ID: 1, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "96", + Rtp: 0.96, + }, + 2: { + ID: 2, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "80", + Rtp: 0.8, + }, + 3: { + ID: 3, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "120", + Rtp: 1.2, + }, + } + + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{ + { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{ + 13: { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + 14: { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + 15: { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + 16: { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + 17: { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + 18: { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + 19: { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + 20: { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + 21: { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + 22: { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + 23: { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + 24: { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + 25: { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + 26: { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + 27: { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusReelBaseSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpinReel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin1Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin1Reel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin1Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin2Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin2Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 10, 8, 8, 3, 11, 11, 4, 4, 9, 11, 8, 7, 11, 11, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 8, 10, 10, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 7, 8, 7, 9, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 11, 10, 5, 8, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 6, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 6, 11, 6, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 11, 10, 11, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 6, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin2Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin3Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin3Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin3Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin7Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin7Reel = [][]int64{ + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + } + + GatesOfOlympusReelBaseSpin7Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin8Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin8Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 4, 11, 11, 4, 4, 9, 11, 8, 7, 11, 1, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 7, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 11, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 1, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 4, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin8Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{ + { + ID: 1, + IsFreeSpin: false, + NodeType: "BaseSpin1", + Weights: []int64{40, 162, 0}, + }, + { + ID: 2, + IsFreeSpin: false, + NodeType: "BaseSpin2", + Weights: []int64{66, 0, 0}, + }, + { + ID: 3, + IsFreeSpin: false, + NodeType: "BaseSpin3", + Weights: []int64{20, 68, 0}, + }, + { + ID: 4, + IsFreeSpin: false, + NodeType: "BaseSpin7", + Weights: []int64{0, 0, 1}, + }, + { + ID: 5, + IsFreeSpin: false, + NodeType: "BaseSpin8", + Weights: []int64{1, 180, 0}, + }, + { + ID: 6, + IsFreeSpin: true, + NodeType: "FreeSpin4", + Weights: []int64{1, 1, 1}, + }, + { + ID: 7, + IsFreeSpin: true, + NodeType: "FreeSpin5", + Weights: []int64{2, 2, 2}, + }, + } + + GatesOfOlympusReelFreeSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpinReel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin4Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin4Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin4Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin5Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin5Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin5Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{ + 1: { + ScatterCount: 1, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 2: { + ScatterCount: 2, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 3: { + ScatterCount: 3, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 5, + BasePayrate: 0, + FreePayrate: 0, + }, + 4: { + ScatterCount: 4, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 3, + FreePayrate: 3, + }, + 5: { + ScatterCount: 5, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 5, + FreePayrate: 5, + }, + 6: { + ScatterCount: 6, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 100, + FreePayrate: 100, + }, + } + + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{ + 1: { + ID: 1, + Name: "Scatter", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 2: { + ID: 2, + Name: "无", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 3: { + ID: 3, + Name: "皇冠", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 200, 200, 500, 500, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}, + ClientOrder: 1, + ClientDsc: "", + }, + 4: { + ID: 4, + Name: "沙漏", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 50, 50, 200, 200, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}, + ClientOrder: 2, + ClientDsc: "", + }, + 5: { + ID: 5, + Name: "戒指", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 40, 40, 100, 100, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300}, + ClientOrder: 3, + ClientDsc: "", + }, + 6: { + ID: 6, + Name: "酒杯", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 30, 30, 40, 40, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240}, + ClientOrder: 4, + ClientDsc: "", + }, + 7: { + ID: 7, + Name: "红宝石", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 20, 20, 30, 30, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200}, + ClientOrder: 5, + ClientDsc: "", + }, + 8: { + ID: 8, + Name: "紫宝石", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 16, 16, 24, 24, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160}, + ClientOrder: 6, + ClientDsc: "", + }, + 9: { + ID: 9, + Name: "黄宝石", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 10, 10, 20, 20, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100}, + ClientOrder: 7, + ClientDsc: "", + }, + 10: { + ID: 10, + Name: "绿宝石", + IsWild: false, + Group: []int64{10}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 8, 8, 18, 18, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, + ClientOrder: 8, + ClientDsc: "", + }, + 11: { + ID: 11, + Name: "蓝宝石", + IsWild: false, + Group: []int64{11}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 5, 5, 15, 15, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, + ClientOrder: 9, + ClientDsc: "", + }, + 12: { + ID: 12, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 13: { + ID: 13, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 14: { + ID: 14, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 15: { + ID: 15, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 16: { + ID: 16, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 17: { + ID: 17, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 18: { + ID: 18, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 19: { + ID: 19, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 20: { + ID: 20, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 21: { + ID: 21, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 22: { + ID: 22, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 23: { + ID: 23, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 24: { + ID: 24, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 25: { + ID: 25, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 26: { + ID: 26, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 27: { + ID: 27, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + } + + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{ + { + BetRatio: 1, + }, + } + +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go index 7c5f3de..c80afb9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go @@ -9,8 +9,8 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -22,8 +22,8 @@ func init() { MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{ { - Type: "FeatureForm19X1TypeA", - LinkType: 2, + Type: "FeatureForm19X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -35,8 +35,8 @@ func init() { MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{ { - Type: "FeatureForm20X1TypeA", - LinkType: 2, + Type: "FeatureForm20X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -48,8 +48,8 @@ func init() { MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{ { - Type: "FeatureForm25X1TypeA", - LinkType: 2, + Type: "FeatureForm25X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -61,8 +61,8 @@ func init() { MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{ { - Type: "FeatureForm30X1TypeA", - LinkType: 2, + Type: "FeatureForm30X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -74,8 +74,8 @@ func init() { MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{ { - Type: "FeatureForm35X1TypeA", - LinkType: 2, + Type: "FeatureForm35X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -87,8 +87,8 @@ func init() { MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -100,8 +100,8 @@ func init() { MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -113,8 +113,8 @@ func init() { MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -126,8 +126,8 @@ func init() { MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{ { - Type: "Line100Form12X5TypeA", - LinkType: 0, + Type: "Line100Form12X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -238,8 +238,8 @@ func init() { MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{ { - Type: "Line100Form6X5TypeA", - LinkType: 0, + Type: "Line100Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -350,8 +350,8 @@ func init() { MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{ { - Type: "Line10Form343TypeA", - LinkType: 0, + Type: "Line10Form343TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -372,8 +372,8 @@ func init() { MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{ { - Type: "Line10Form3X5TypeA", - LinkType: 0, + Type: "Line10Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -394,8 +394,8 @@ func init() { MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{ { - Type: "Line1Form3X3TypeA", - LinkType: 0, + Type: "Line1Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -407,8 +407,8 @@ func init() { MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{ { - Type: "Line1Form3X3TypeB", - LinkType: 0, + Type: "Line1Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -420,8 +420,8 @@ func init() { MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{ { - Type: "Line1Form5X5TypeA", - LinkType: 0, + Type: "Line1Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -433,8 +433,8 @@ func init() { MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{ { - Type: "Line20Form3X5TypeA", - LinkType: 0, + Type: "Line20Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -465,8 +465,8 @@ func init() { MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{ { - Type: "Line25Form36666TypeA", - LinkType: 0, + Type: "Line25Form36666TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -502,8 +502,8 @@ func init() { MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{ { - Type: "Line25Form3X5TypeA", - LinkType: 0, + Type: "Line25Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -539,8 +539,8 @@ func init() { MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{ { - Type: "Line25Form3X5TypeB", - LinkType: 0, + Type: "Line25Form3X5TypeB", + LinkType: 0, Direction: 2, LineCount: 25, Lines: [][]int64{ @@ -576,8 +576,8 @@ func init() { MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{ { - Type: "Line25Form3X5TypeC", - LinkType: 0, + Type: "Line25Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -613,8 +613,8 @@ func init() { MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{ { - Type: "Line25Form3X5TypeD", - LinkType: 0, + Type: "Line25Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -650,8 +650,8 @@ func init() { MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{ { - Type: "Line25Form3X5TypeE", - LinkType: 0, + Type: "Line25Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -687,8 +687,8 @@ func init() { MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{ { - Type: "Line30Form3X5TypeA", - LinkType: 0, + Type: "Line30Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -729,8 +729,8 @@ func init() { MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{ { - Type: "Line30Form3X5TypeB", - LinkType: 0, + Type: "Line30Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -771,8 +771,8 @@ func init() { MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{ { - Type: "Line30Form3X5TypeC", - LinkType: 0, + Type: "Line30Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -813,8 +813,8 @@ func init() { MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{ { - Type: "Line30Form3X5TypeD", - LinkType: 0, + Type: "Line30Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -855,8 +855,8 @@ func init() { MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{ { - Type: "Line30Form3X5TypeE", - LinkType: 0, + Type: "Line30Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -897,8 +897,8 @@ func init() { MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{ { - Type: "Line30Form3X6TypeA", - LinkType: 0, + Type: "Line30Form3X6TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -939,8 +939,8 @@ func init() { MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{ { - Type: "Line30Form4X5TypeA", - LinkType: 0, + Type: "Line30Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -981,8 +981,8 @@ func init() { MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{ { - Type: "Line30Form4X5TypeB", - LinkType: 0, + Type: "Line30Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -1023,8 +1023,8 @@ func init() { MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{ { - Type: "Line3Form3X3TypeA", - LinkType: 0, + Type: "Line3Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 3, Lines: [][]int64{ @@ -1038,8 +1038,8 @@ func init() { MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{ { - Type: "Line40Form34543TypeA", - LinkType: 0, + Type: "Line40Form34543TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1090,8 +1090,8 @@ func init() { MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{ { - Type: "Line40Form3X5TypeA", - LinkType: 0, + Type: "Line40Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1142,8 +1142,8 @@ func init() { MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{ { - Type: "Line40Form3X5TypeB", - LinkType: 0, + Type: "Line40Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1194,8 +1194,8 @@ func init() { MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{ { - Type: "Line40Form3X5TypeC", - LinkType: 0, + Type: "Line40Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1246,8 +1246,8 @@ func init() { MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{ { - Type: "Line40Form3X5TypeD", - LinkType: 0, + Type: "Line40Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1298,8 +1298,8 @@ func init() { MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1350,8 +1350,8 @@ func init() { MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1402,8 +1402,8 @@ func init() { MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{ { - Type: "Line40Form4X5TypeC", - LinkType: 0, + Type: "Line40Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1454,8 +1454,8 @@ func init() { MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{ { - Type: "Line40Form4X6TypeA", - LinkType: 0, + Type: "Line40Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1506,8 +1506,8 @@ func init() { MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{ { - Type: "Line50Form3X5TypeA", - LinkType: 0, + Type: "Line50Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1568,8 +1568,8 @@ func init() { MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{ { - Type: "Line50Form3X5TypeB", - LinkType: 0, + Type: "Line50Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1630,8 +1630,8 @@ func init() { MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{ { - Type: "Line50Form3X5TypeC", - LinkType: 0, + Type: "Line50Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1692,8 +1692,8 @@ func init() { MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{ { - Type: "Line50Form3X5TypeD", - LinkType: 0, + Type: "Line50Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1754,8 +1754,8 @@ func init() { MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{ { - Type: "Line50Form3X5TypeE", - LinkType: 0, + Type: "Line50Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1816,8 +1816,8 @@ func init() { MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{ { - Type: "Line50Form3X5TypeF", - LinkType: 0, + Type: "Line50Form3X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1878,8 +1878,8 @@ func init() { MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{ { - Type: "Line50Form3X5TypeG", - LinkType: 0, + Type: "Line50Form3X5TypeG", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1940,8 +1940,8 @@ func init() { MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{ { - Type: "Line50Form3X5TypeH", - LinkType: 0, + Type: "Line50Form3X5TypeH", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2002,8 +2002,8 @@ func init() { MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{ { - Type: "Line50Form45454TypeA", - LinkType: 0, + Type: "Line50Form45454TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2064,8 +2064,8 @@ func init() { MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{ { - Type: "Line50Form4X5TypeA", - LinkType: 0, + Type: "Line50Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2126,8 +2126,8 @@ func init() { MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{ { - Type: "Line50Form4X5TypeB", - LinkType: 0, + Type: "Line50Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2188,8 +2188,8 @@ func init() { MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{ { - Type: "Line50Form4X5TypeC", - LinkType: 0, + Type: "Line50Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2250,8 +2250,8 @@ func init() { MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{ { - Type: "Line50Form4X5TypeD", - LinkType: 0, + Type: "Line50Form4X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2312,8 +2312,8 @@ func init() { MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{ { - Type: "Line50Form4X5TypeE", - LinkType: 0, + Type: "Line50Form4X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2374,8 +2374,8 @@ func init() { MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{ { - Type: "Line50Form4X5TypeF", - LinkType: 0, + Type: "Line50Form4X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2436,8 +2436,8 @@ func init() { MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{ { - Type: "Line50Form4X6TypeA", - LinkType: 0, + Type: "Line50Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2498,8 +2498,8 @@ func init() { MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{ { - Type: "Line50Form5X5TypeA", - LinkType: 0, + Type: "Line50Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2560,8 +2560,8 @@ func init() { MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{ { - Type: "Line50Form5X5TypeB", - LinkType: 0, + Type: "Line50Form5X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2622,8 +2622,8 @@ func init() { MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{ { - Type: "Line50Form5X5TypeC", - LinkType: 0, + Type: "Line50Form5X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2684,8 +2684,8 @@ func init() { MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{ { - Type: "Line50Form6X5TypeA", - LinkType: 0, + Type: "Line50Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2746,8 +2746,8 @@ func init() { MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{ { - Type: "Line5Form3X3TypeA", - LinkType: 0, + Type: "Line5Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2763,8 +2763,8 @@ func init() { MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{ { - Type: "Line5Form3X3TypeB", - LinkType: 0, + Type: "Line5Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2780,8 +2780,8 @@ func init() { MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{ { - Type: "Line60Form33633TypeA", - LinkType: 0, + Type: "Line60Form33633TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2852,8 +2852,8 @@ func init() { MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{ { - Type: "Line60Form8X5TypeA", - LinkType: 0, + Type: "Line60Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2924,8 +2924,8 @@ func init() { MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{ { - Type: "Line65Form6X5TypeA", - LinkType: 0, + Type: "Line65Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 65, Lines: [][]int64{ @@ -3001,8 +3001,8 @@ func init() { MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{ { - Type: "Line70Form9X5TypeA", - LinkType: 0, + Type: "Line70Form9X5TypeA", + LinkType: 0, Direction: 0, LineCount: 70, Lines: [][]int64{ @@ -3083,8 +3083,8 @@ func init() { MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{ { - Type: "Line75Form5X6TypeA", - LinkType: 0, + Type: "Line75Form5X6TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3170,8 +3170,8 @@ func init() { MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{ { - Type: "Line75Form6X5TypeA", - LinkType: 0, + Type: "Line75Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3257,8 +3257,8 @@ func init() { MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{ { - Type: "Line80Form10X5TypeA", - LinkType: 0, + Type: "Line80Form10X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3349,8 +3349,8 @@ func init() { MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{ { - Type: "Line80Form3X5TypeA", - LinkType: 0, + Type: "Line80Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3441,8 +3441,8 @@ func init() { MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{ { - Type: "Line80Form4X6TypeA", - LinkType: 0, + Type: "Line80Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3533,8 +3533,8 @@ func init() { MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{ { - Type: "Line80Form7X5TypeA", - LinkType: 0, + Type: "Line80Form7X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3625,8 +3625,8 @@ func init() { MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{ { - Type: "Line90Form11X5TypeA", - LinkType: 0, + Type: "Line90Form11X5TypeA", + LinkType: 0, Direction: 0, LineCount: 90, Lines: [][]int64{ @@ -3727,8 +3727,8 @@ func init() { MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{ { - Type: "Line95Form8X5TypeA", - LinkType: 0, + Type: "Line95Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 95, Lines: [][]int64{ @@ -3834,8 +3834,8 @@ func init() { MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{ { - Type: "MatchForm7X7", - LinkType: 4, + Type: "MatchForm7X7", + LinkType: 4, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3847,8 +3847,8 @@ func init() { MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{ { - Type: "SameForm5X6", - LinkType: 3, + Type: "SameForm5X6", + LinkType: 3, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3860,8 +3860,8 @@ func init() { MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{ { - Type: "SameForm5X6TypeB", - LinkType: 3, + Type: "SameForm5X6TypeB", + LinkType: 3, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -3873,8 +3873,8 @@ func init() { MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{ { - Type: "WaysForm333331", - LinkType: 1, + Type: "WaysForm333331", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3886,8 +3886,8 @@ func init() { MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{ { - Type: "WaysForm33555", - LinkType: 1, + Type: "WaysForm33555", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3899,8 +3899,8 @@ func init() { MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{ { - Type: "WaysForm344444", - LinkType: 1, + Type: "WaysForm344444", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3912,8 +3912,8 @@ func init() { MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{ { - Type: "WaysForm3X5TypeA", - LinkType: 1, + Type: "WaysForm3X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3925,8 +3925,8 @@ func init() { MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{ { - Type: "WaysForm44668", - LinkType: 1, + Type: "WaysForm44668", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3938,8 +3938,8 @@ func init() { MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{ { - Type: "WaysForm4X5TypeA", - LinkType: 1, + Type: "WaysForm4X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3951,8 +3951,8 @@ func init() { MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{ { - Type: "WaysForm4X5TypeB", - LinkType: 1, + Type: "WaysForm4X5TypeB", + LinkType: 1, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -3962,4 +3962,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go index 2fedcfe..35875e9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go @@ -9,14 +9,14 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { OptGroup = []*structs.OptGroup{ { - ID: 1, - Batch: 1, + ID: 1, + Batch: 1, IsNewPlayer: true, - StartTime: "2023-4-26", - EndTime: "2050-11-27", - Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + StartTime: "2023-4-26", + EndTime: "2050-11-27", + Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go index b13f286..b6152cf 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go @@ -9,20 +9,20 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 10, MaxMultiple: 25, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 25, MaxMultiple: 50, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 50, MaxMultiple: -1, }, @@ -30,29 +30,29 @@ func init() { PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 15, MaxMultiple: 30, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 30, MaxMultiple: 45, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 45, MaxMultiple: 60, }, 4: { - ID: 4, - AniType: "epic_win", + ID: 4, + AniType: "epic_win", MinMultiple: 60, MaxMultiple: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go index 49d75bc..6dd159b 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go @@ -10,162 +10,162 @@ func init() { SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{ { Level: 1, - Min: 0, - Max: 3, + Min: 0, + Max: 3, }, { Level: 2, - Min: 3, - Max: 6, + Min: 3, + Max: 6, }, { Level: 3, - Min: 6, - Max: 9, + Min: 6, + Max: 9, }, { Level: 4, - Min: 9, - Max: 12, + Min: 9, + Max: 12, }, { Level: 5, - Min: 12, - Max: 18, + Min: 12, + Max: 18, }, { Level: 6, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 7, - Min: 20, - Max: 30, + Min: 20, + Max: 30, }, { Level: 8, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 9, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 10, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 11, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 12, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } SimulatorMultiLevel = []*structs.SimulatorMultiLevel{ { Level: 1, - Min: 0, - Max: 1, + Min: 0, + Max: 1, }, { Level: 2, - Min: 1, - Max: 2, + Min: 1, + Max: 2, }, { Level: 3, - Min: 2, - Max: 3, + Min: 2, + Max: 3, }, { Level: 4, - Min: 3, - Max: 4, + Min: 3, + Max: 4, }, { Level: 5, - Min: 4, - Max: 5, + Min: 4, + Max: 5, }, { Level: 6, - Min: 5, - Max: 6, + Min: 5, + Max: 6, }, { Level: 7, - Min: 6, - Max: 8, + Min: 6, + Max: 8, }, { Level: 8, - Min: 8, - Max: 10, + Min: 8, + Max: 10, }, { Level: 9, - Min: 10, - Max: 12, + Min: 10, + Max: 12, }, { Level: 10, - Min: 12, - Max: 15, + Min: 12, + Max: 15, }, { Level: 11, - Min: 15, - Max: 18, + Min: 15, + Max: 18, }, { Level: 12, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 13, - Min: 20, - Max: 25, + Min: 20, + Max: 25, }, { Level: 14, - Min: 25, - Max: 30, + Min: 25, + Max: 30, }, { Level: 15, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 16, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 17, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 18, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 19, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go index 620b087..1964a45 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go @@ -9,173 +9,173 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } TestBetBetLevel = map[int64]*structs.TestBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } TestBetBetLine = map[int64]*structs.TestBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, }, } TestBetBetSize = map[int64]*structs.TestBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } TestBetFirstBet = map[int64]*structs.TestBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } TestFormation = []*structs.TestFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form3X3TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form3X3TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -186,5041 +186,5041 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } TestRandomWeight = []*structs.TestRandomWeight{ { - ID: 1, - Time: 0, + ID: 1, + Time: 0, Weight: 0.043017, }, { - ID: 2, - Time: 0.1, + ID: 2, + Time: 0.1, Weight: 0.00795, }, { - ID: 3, - Time: 0.2, + ID: 3, + Time: 0.2, Weight: 0.007884, }, { - ID: 4, - Time: 0.3, + ID: 4, + Time: 0.3, Weight: 0.007819, }, { - ID: 5, - Time: 0.4, + ID: 5, + Time: 0.4, Weight: 0.007754, }, { - ID: 6, - Time: 0.5, + ID: 6, + Time: 0.5, Weight: 0.007689, }, { - ID: 7, - Time: 0.6, + ID: 7, + Time: 0.6, Weight: 0.007625, }, { - ID: 8, - Time: 0.7, + ID: 8, + Time: 0.7, Weight: 0.007562, }, { - ID: 9, - Time: 0.8, + ID: 9, + Time: 0.8, Weight: 0.007499, }, { - ID: 10, - Time: 0.9, + ID: 10, + Time: 0.9, Weight: 0.007437, }, { - ID: 11, - Time: 1, + ID: 11, + Time: 1, Weight: 0.007375, }, { - ID: 12, - Time: 1.1, + ID: 12, + Time: 1.1, Weight: 0.007314, }, { - ID: 13, - Time: 1.2, + ID: 13, + Time: 1.2, Weight: 0.007253, }, { - ID: 14, - Time: 1.3, + ID: 14, + Time: 1.3, Weight: 0.007193, }, { - ID: 15, - Time: 1.4, + ID: 15, + Time: 1.4, Weight: 0.007133, }, { - ID: 16, - Time: 1.5, + ID: 16, + Time: 1.5, Weight: 0.007074, }, { - ID: 17, - Time: 1.6, + ID: 17, + Time: 1.6, Weight: 0.007015, }, { - ID: 18, - Time: 1.7, + ID: 18, + Time: 1.7, Weight: 0.006957, }, { - ID: 19, - Time: 1.8, + ID: 19, + Time: 1.8, Weight: 0.006899, }, { - ID: 20, - Time: 1.9, + ID: 20, + Time: 1.9, Weight: 0.006842, }, { - ID: 21, - Time: 2, + ID: 21, + Time: 2, Weight: 0.006785, }, { - ID: 22, - Time: 2.1, + ID: 22, + Time: 2.1, Weight: 0.006728, }, { - ID: 23, - Time: 2.2, + ID: 23, + Time: 2.2, Weight: 0.006673, }, { - ID: 24, - Time: 2.3, + ID: 24, + Time: 2.3, Weight: 0.006617, }, { - ID: 25, - Time: 2.4, + ID: 25, + Time: 2.4, Weight: 0.006562, }, { - ID: 26, - Time: 2.5, + ID: 26, + Time: 2.5, Weight: 0.006508, }, { - ID: 27, - Time: 2.6, + ID: 27, + Time: 2.6, Weight: 0.006454, }, { - ID: 28, - Time: 2.7, + ID: 28, + Time: 2.7, Weight: 0.0064, }, { - ID: 29, - Time: 2.8, + ID: 29, + Time: 2.8, Weight: 0.006347, }, { - ID: 30, - Time: 2.9, + ID: 30, + Time: 2.9, Weight: 0.006294, }, { - ID: 31, - Time: 3, + ID: 31, + Time: 3, Weight: 0.006242, }, { - ID: 32, - Time: 3.1, + ID: 32, + Time: 3.1, Weight: 0.00619, }, { - ID: 33, - Time: 3.2, + ID: 33, + Time: 3.2, Weight: 0.006138, }, { - ID: 34, - Time: 3.3, + ID: 34, + Time: 3.3, Weight: 0.006087, }, { - ID: 35, - Time: 3.4, + ID: 35, + Time: 3.4, Weight: 0.006037, }, { - ID: 36, - Time: 3.5, + ID: 36, + Time: 3.5, Weight: 0.005987, }, { - ID: 37, - Time: 3.6, + ID: 37, + Time: 3.6, Weight: 0.005937, }, { - ID: 38, - Time: 3.7, + ID: 38, + Time: 3.7, Weight: 0.005888, }, { - ID: 39, - Time: 3.8, + ID: 39, + Time: 3.8, Weight: 0.005839, }, { - ID: 40, - Time: 3.9, + ID: 40, + Time: 3.9, Weight: 0.00579, }, { - ID: 41, - Time: 4, + ID: 41, + Time: 4, Weight: 0.005742, }, { - ID: 42, - Time: 4.1, + ID: 42, + Time: 4.1, Weight: 0.005694, }, { - ID: 43, - Time: 4.2, + ID: 43, + Time: 4.2, Weight: 0.005647, }, { - ID: 44, - Time: 4.3, + ID: 44, + Time: 4.3, Weight: 0.0056, }, { - ID: 45, - Time: 4.4, + ID: 45, + Time: 4.4, Weight: 0.005554, }, { - ID: 46, - Time: 4.5, + ID: 46, + Time: 4.5, Weight: 0.005508, }, { - ID: 47, - Time: 4.6, + ID: 47, + Time: 4.6, Weight: 0.005462, }, { - ID: 48, - Time: 4.7, + ID: 48, + Time: 4.7, Weight: 0.005416, }, { - ID: 49, - Time: 4.8, + ID: 49, + Time: 4.8, Weight: 0.005371, }, { - ID: 50, - Time: 4.9, + ID: 50, + Time: 4.9, Weight: 0.005327, }, { - ID: 51, - Time: 5, + ID: 51, + Time: 5, Weight: 0.005283, }, { - ID: 52, - Time: 5.1, + ID: 52, + Time: 5.1, Weight: 0.005239, }, { - ID: 53, - Time: 5.2, + ID: 53, + Time: 5.2, Weight: 0.005195, }, { - ID: 54, - Time: 5.3, + ID: 54, + Time: 5.3, Weight: 0.005152, }, { - ID: 55, - Time: 5.4, + ID: 55, + Time: 5.4, Weight: 0.005109, }, { - ID: 56, - Time: 5.5, + ID: 56, + Time: 5.5, Weight: 0.005067, }, { - ID: 57, - Time: 5.6, + ID: 57, + Time: 5.6, Weight: 0.005025, }, { - ID: 58, - Time: 5.7, + ID: 58, + Time: 5.7, Weight: 0.004983, }, { - ID: 59, - Time: 5.8, + ID: 59, + Time: 5.8, Weight: 0.004942, }, { - ID: 60, - Time: 5.9, + ID: 60, + Time: 5.9, Weight: 0.004901, }, { - ID: 61, - Time: 6, + ID: 61, + Time: 6, Weight: 0.00486, }, { - ID: 62, - Time: 6.1, + ID: 62, + Time: 6.1, Weight: 0.004819, }, { - ID: 63, - Time: 6.2, + ID: 63, + Time: 6.2, Weight: 0.004779, }, { - ID: 64, - Time: 6.3, + ID: 64, + Time: 6.3, Weight: 0.00474, }, { - ID: 65, - Time: 6.4, + ID: 65, + Time: 6.4, Weight: 0.0047, }, { - ID: 66, - Time: 6.5, + ID: 66, + Time: 6.5, Weight: 0.004661, }, { - ID: 67, - Time: 6.6, + ID: 67, + Time: 6.6, Weight: 0.004623, }, { - ID: 68, - Time: 6.7, + ID: 68, + Time: 6.7, Weight: 0.004584, }, { - ID: 69, - Time: 6.8, + ID: 69, + Time: 6.8, Weight: 0.004546, }, { - ID: 70, - Time: 6.9, + ID: 70, + Time: 6.9, Weight: 0.004508, }, { - ID: 71, - Time: 7, + ID: 71, + Time: 7, Weight: 0.004471, }, { - ID: 72, - Time: 7.1, + ID: 72, + Time: 7.1, Weight: 0.004434, }, { - ID: 73, - Time: 7.2, + ID: 73, + Time: 7.2, Weight: 0.004397, }, { - ID: 74, - Time: 7.3, + ID: 74, + Time: 7.3, Weight: 0.00436, }, { - ID: 75, - Time: 7.4, + ID: 75, + Time: 7.4, Weight: 0.004324, }, { - ID: 76, - Time: 7.5, + ID: 76, + Time: 7.5, Weight: 0.004288, }, { - ID: 77, - Time: 7.6, + ID: 77, + Time: 7.6, Weight: 0.004253, }, { - ID: 78, - Time: 7.7, + ID: 78, + Time: 7.7, Weight: 0.004217, }, { - ID: 79, - Time: 7.8, + ID: 79, + Time: 7.8, Weight: 0.004182, }, { - ID: 80, - Time: 7.9, + ID: 80, + Time: 7.9, Weight: 0.004147, }, { - ID: 81, - Time: 8, + ID: 81, + Time: 8, Weight: 0.004113, }, { - ID: 82, - Time: 8.1, + ID: 82, + Time: 8.1, Weight: 0.004079, }, { - ID: 83, - Time: 8.2, + ID: 83, + Time: 8.2, Weight: 0.004045, }, { - ID: 84, - Time: 8.3, + ID: 84, + Time: 8.3, Weight: 0.004011, }, { - ID: 85, - Time: 8.4, + ID: 85, + Time: 8.4, Weight: 0.003978, }, { - ID: 86, - Time: 8.5, + ID: 86, + Time: 8.5, Weight: 0.003945, }, { - ID: 87, - Time: 8.6, + ID: 87, + Time: 8.6, Weight: 0.003912, }, { - ID: 88, - Time: 8.7, + ID: 88, + Time: 8.7, Weight: 0.00388, }, { - ID: 89, - Time: 8.8, + ID: 89, + Time: 8.8, Weight: 0.003847, }, { - ID: 90, - Time: 8.9, + ID: 90, + Time: 8.9, Weight: 0.003816, }, { - ID: 91, - Time: 9, + ID: 91, + Time: 9, Weight: 0.003784, }, { - ID: 92, - Time: 9.1, + ID: 92, + Time: 9.1, Weight: 0.003752, }, { - ID: 93, - Time: 9.2, + ID: 93, + Time: 9.2, Weight: 0.003721, }, { - ID: 94, - Time: 9.3, + ID: 94, + Time: 9.3, Weight: 0.00369, }, { - ID: 95, - Time: 9.4, + ID: 95, + Time: 9.4, Weight: 0.00366, }, { - ID: 96, - Time: 9.5, + ID: 96, + Time: 9.5, Weight: 0.003629, }, { - ID: 97, - Time: 9.6, + ID: 97, + Time: 9.6, Weight: 0.003599, }, { - ID: 98, - Time: 9.7, + ID: 98, + Time: 9.7, Weight: 0.003569, }, { - ID: 99, - Time: 9.8, + ID: 99, + Time: 9.8, Weight: 0.00354, }, { - ID: 100, - Time: 9.9, + ID: 100, + Time: 9.9, Weight: 0.00351, }, { - ID: 101, - Time: 10, + ID: 101, + Time: 10, Weight: 0.003481, }, { - ID: 102, - Time: 10.1, + ID: 102, + Time: 10.1, Weight: 0.003452, }, { - ID: 103, - Time: 10.2, + ID: 103, + Time: 10.2, Weight: 0.003423, }, { - ID: 104, - Time: 10.3, + ID: 104, + Time: 10.3, Weight: 0.003395, }, { - ID: 105, - Time: 10.4, + ID: 105, + Time: 10.4, Weight: 0.003367, }, { - ID: 106, - Time: 10.5, + ID: 106, + Time: 10.5, Weight: 0.003339, }, { - ID: 107, - Time: 10.6, + ID: 107, + Time: 10.6, Weight: 0.003311, }, { - ID: 108, - Time: 10.7, + ID: 108, + Time: 10.7, Weight: 0.003284, }, { - ID: 109, - Time: 10.8, + ID: 109, + Time: 10.8, Weight: 0.003256, }, { - ID: 110, - Time: 10.9, + ID: 110, + Time: 10.9, Weight: 0.003229, }, { - ID: 111, - Time: 11, + ID: 111, + Time: 11, Weight: 0.003202, }, { - ID: 112, - Time: 11.1, + ID: 112, + Time: 11.1, Weight: 0.003176, }, { - ID: 113, - Time: 11.2, + ID: 113, + Time: 11.2, Weight: 0.003149, }, { - ID: 114, - Time: 11.3, + ID: 114, + Time: 11.3, Weight: 0.003123, }, { - ID: 115, - Time: 11.4, + ID: 115, + Time: 11.4, Weight: 0.003097, }, { - ID: 116, - Time: 11.5, + ID: 116, + Time: 11.5, Weight: 0.003072, }, { - ID: 117, - Time: 11.6, + ID: 117, + Time: 11.6, Weight: 0.003046, }, { - ID: 118, - Time: 11.7, + ID: 118, + Time: 11.7, Weight: 0.003021, }, { - ID: 119, - Time: 11.8, + ID: 119, + Time: 11.8, Weight: 0.002996, }, { - ID: 120, - Time: 11.9, + ID: 120, + Time: 11.9, Weight: 0.002971, }, { - ID: 121, - Time: 12, + ID: 121, + Time: 12, Weight: 0.002946, }, { - ID: 122, - Time: 12.1, + ID: 122, + Time: 12.1, Weight: 0.002922, }, { - ID: 123, - Time: 12.2, + ID: 123, + Time: 12.2, Weight: 0.002897, }, { - ID: 124, - Time: 12.3, + ID: 124, + Time: 12.3, Weight: 0.002873, }, { - ID: 125, - Time: 12.4, + ID: 125, + Time: 12.4, Weight: 0.002849, }, { - ID: 126, - Time: 12.5, + ID: 126, + Time: 12.5, Weight: 0.002826, }, { - ID: 127, - Time: 12.6, + ID: 127, + Time: 12.6, Weight: 0.002802, }, { - ID: 128, - Time: 12.7, + ID: 128, + Time: 12.7, Weight: 0.002779, }, { - ID: 129, - Time: 12.8, + ID: 129, + Time: 12.8, Weight: 0.002756, }, { - ID: 130, - Time: 12.9, + ID: 130, + Time: 12.9, Weight: 0.002733, }, { - ID: 131, - Time: 13, + ID: 131, + Time: 13, Weight: 0.00271, }, { - ID: 132, - Time: 13.1, + ID: 132, + Time: 13.1, Weight: 0.002688, }, { - ID: 133, - Time: 13.2, + ID: 133, + Time: 13.2, Weight: 0.002665, }, { - ID: 134, - Time: 13.3, + ID: 134, + Time: 13.3, Weight: 0.002643, }, { - ID: 135, - Time: 13.4, + ID: 135, + Time: 13.4, Weight: 0.002621, }, { - ID: 136, - Time: 13.5, + ID: 136, + Time: 13.5, Weight: 0.0026, }, { - ID: 137, - Time: 13.6, + ID: 137, + Time: 13.6, Weight: 0.002578, }, { - ID: 138, - Time: 13.7, + ID: 138, + Time: 13.7, Weight: 0.002557, }, { - ID: 139, - Time: 13.8, + ID: 139, + Time: 13.8, Weight: 0.002535, }, { - ID: 140, - Time: 13.9, + ID: 140, + Time: 13.9, Weight: 0.002514, }, { - ID: 141, - Time: 14, + ID: 141, + Time: 14, Weight: 0.002493, }, { - ID: 142, - Time: 14.1, + ID: 142, + Time: 14.1, Weight: 0.002473, }, { - ID: 143, - Time: 14.2, + ID: 143, + Time: 14.2, Weight: 0.002452, }, { - ID: 144, - Time: 14.3, + ID: 144, + Time: 14.3, Weight: 0.002432, }, { - ID: 145, - Time: 14.4, + ID: 145, + Time: 14.4, Weight: 0.002412, }, { - ID: 146, - Time: 14.5, + ID: 146, + Time: 14.5, Weight: 0.002391, }, { - ID: 147, - Time: 14.6, + ID: 147, + Time: 14.6, Weight: 0.002372, }, { - ID: 148, - Time: 14.7, + ID: 148, + Time: 14.7, Weight: 0.002352, }, { - ID: 149, - Time: 14.8, + ID: 149, + Time: 14.8, Weight: 0.002332, }, { - ID: 150, - Time: 14.9, + ID: 150, + Time: 14.9, Weight: 0.002313, }, { - ID: 151, - Time: 15, + ID: 151, + Time: 15, Weight: 0.002294, }, { - ID: 152, - Time: 15.1, + ID: 152, + Time: 15.1, Weight: 0.002275, }, { - ID: 153, - Time: 15.2, + ID: 153, + Time: 15.2, Weight: 0.002256, }, { - ID: 154, - Time: 15.3, + ID: 154, + Time: 15.3, Weight: 0.002237, }, { - ID: 155, - Time: 15.4, + ID: 155, + Time: 15.4, Weight: 0.002219, }, { - ID: 156, - Time: 15.5, + ID: 156, + Time: 15.5, Weight: 0.0022, }, { - ID: 157, - Time: 15.6, + ID: 157, + Time: 15.6, Weight: 0.002182, }, { - ID: 158, - Time: 15.7, + ID: 158, + Time: 15.7, Weight: 0.002164, }, { - ID: 159, - Time: 15.8, + ID: 159, + Time: 15.8, Weight: 0.002146, }, { - ID: 160, - Time: 15.9, + ID: 160, + Time: 15.9, Weight: 0.002128, }, { - ID: 161, - Time: 16, + ID: 161, + Time: 16, Weight: 0.00211, }, { - ID: 162, - Time: 16.1, + ID: 162, + Time: 16.1, Weight: 0.002093, }, { - ID: 163, - Time: 16.2, + ID: 163, + Time: 16.2, Weight: 0.002075, }, { - ID: 164, - Time: 16.3, + ID: 164, + Time: 16.3, Weight: 0.002058, }, { - ID: 165, - Time: 16.4, + ID: 165, + Time: 16.4, Weight: 0.002041, }, { - ID: 166, - Time: 16.5, + ID: 166, + Time: 16.5, Weight: 0.002024, }, { - ID: 167, - Time: 16.6, + ID: 167, + Time: 16.6, Weight: 0.002007, }, { - ID: 168, - Time: 16.7, + ID: 168, + Time: 16.7, Weight: 0.001991, }, { - ID: 169, - Time: 16.8, + ID: 169, + Time: 16.8, Weight: 0.001974, }, { - ID: 170, - Time: 16.9, + ID: 170, + Time: 16.9, Weight: 0.001958, }, { - ID: 171, - Time: 17, + ID: 171, + Time: 17, Weight: 0.001941, }, { - ID: 172, - Time: 17.1, + ID: 172, + Time: 17.1, Weight: 0.001925, }, { - ID: 173, - Time: 17.2, + ID: 173, + Time: 17.2, Weight: 0.001909, }, { - ID: 174, - Time: 17.3, + ID: 174, + Time: 17.3, Weight: 0.001893, }, { - ID: 175, - Time: 17.4, + ID: 175, + Time: 17.4, Weight: 0.001878, }, { - ID: 176, - Time: 17.5, + ID: 176, + Time: 17.5, Weight: 0.001862, }, { - ID: 177, - Time: 17.6, + ID: 177, + Time: 17.6, Weight: 0.001847, }, { - ID: 178, - Time: 17.7, + ID: 178, + Time: 17.7, Weight: 0.001831, }, { - ID: 179, - Time: 17.8, + ID: 179, + Time: 17.8, Weight: 0.001816, }, { - ID: 180, - Time: 17.9, + ID: 180, + Time: 17.9, Weight: 0.001801, }, { - ID: 181, - Time: 18, + ID: 181, + Time: 18, Weight: 0.001786, }, { - ID: 182, - Time: 18.1, + ID: 182, + Time: 18.1, Weight: 0.001771, }, { - ID: 183, - Time: 18.2, + ID: 183, + Time: 18.2, Weight: 0.001756, }, { - ID: 184, - Time: 18.3, + ID: 184, + Time: 18.3, Weight: 0.001742, }, { - ID: 185, - Time: 18.4, + ID: 185, + Time: 18.4, Weight: 0.001727, }, { - ID: 186, - Time: 18.5, + ID: 186, + Time: 18.5, Weight: 0.001713, }, { - ID: 187, - Time: 18.6, + ID: 187, + Time: 18.6, Weight: 0.001699, }, { - ID: 188, - Time: 18.7, + ID: 188, + Time: 18.7, Weight: 0.001685, }, { - ID: 189, - Time: 18.8, + ID: 189, + Time: 18.8, Weight: 0.001671, }, { - ID: 190, - Time: 18.9, + ID: 190, + Time: 18.9, Weight: 0.001657, }, { - ID: 191, - Time: 19, + ID: 191, + Time: 19, Weight: 0.001643, }, { - ID: 192, - Time: 19.1, + ID: 192, + Time: 19.1, Weight: 0.001629, }, { - ID: 193, - Time: 19.2, + ID: 193, + Time: 19.2, Weight: 0.001616, }, { - ID: 194, - Time: 19.3, + ID: 194, + Time: 19.3, Weight: 0.001602, }, { - ID: 195, - Time: 19.4, + ID: 195, + Time: 19.4, Weight: 0.001589, }, { - ID: 196, - Time: 19.5, + ID: 196, + Time: 19.5, Weight: 0.001576, }, { - ID: 197, - Time: 19.6, + ID: 197, + Time: 19.6, Weight: 0.001563, }, { - ID: 198, - Time: 19.7, + ID: 198, + Time: 19.7, Weight: 0.00155, }, { - ID: 199, - Time: 19.8, + ID: 199, + Time: 19.8, Weight: 0.001537, }, { - ID: 200, - Time: 19.9, + ID: 200, + Time: 19.9, Weight: 0.001524, }, { - ID: 201, - Time: 20, + ID: 201, + Time: 20, Weight: 0.001511, }, { - ID: 202, - Time: 20.1, + ID: 202, + Time: 20.1, Weight: 0.001499, }, { - ID: 203, - Time: 20.2, + ID: 203, + Time: 20.2, Weight: 0.001486, }, { - ID: 204, - Time: 20.3, + ID: 204, + Time: 20.3, Weight: 0.001474, }, { - ID: 205, - Time: 20.4, + ID: 205, + Time: 20.4, Weight: 0.001462, }, { - ID: 206, - Time: 20.5, + ID: 206, + Time: 20.5, Weight: 0.00145, }, { - ID: 207, - Time: 20.6, + ID: 207, + Time: 20.6, Weight: 0.001438, }, { - ID: 208, - Time: 20.7, + ID: 208, + Time: 20.7, Weight: 0.001426, }, { - ID: 209, - Time: 20.8, + ID: 209, + Time: 20.8, Weight: 0.001414, }, { - ID: 210, - Time: 20.9, + ID: 210, + Time: 20.9, Weight: 0.001402, }, { - ID: 211, - Time: 21, + ID: 211, + Time: 21, Weight: 0.001391, }, { - ID: 212, - Time: 21.1, + ID: 212, + Time: 21.1, Weight: 0.001379, }, { - ID: 213, - Time: 21.2, + ID: 213, + Time: 21.2, Weight: 0.001368, }, { - ID: 214, - Time: 21.3, + ID: 214, + Time: 21.3, Weight: 0.001356, }, { - ID: 215, - Time: 21.4, + ID: 215, + Time: 21.4, Weight: 0.001345, }, { - ID: 216, - Time: 21.5, + ID: 216, + Time: 21.5, Weight: 0.001334, }, { - ID: 217, - Time: 21.6, + ID: 217, + Time: 21.6, Weight: 0.001323, }, { - ID: 218, - Time: 21.7, + ID: 218, + Time: 21.7, Weight: 0.001312, }, { - ID: 219, - Time: 21.8, + ID: 219, + Time: 21.8, Weight: 0.001301, }, { - ID: 220, - Time: 21.9, + ID: 220, + Time: 21.9, Weight: 0.00129, }, { - ID: 221, - Time: 22, + ID: 221, + Time: 22, Weight: 0.001279, }, { - ID: 222, - Time: 22.1, + ID: 222, + Time: 22.1, Weight: 0.001269, }, { - ID: 223, - Time: 22.2, + ID: 223, + Time: 22.2, Weight: 0.001258, }, { - ID: 224, - Time: 22.3, + ID: 224, + Time: 22.3, Weight: 0.001248, }, { - ID: 225, - Time: 22.4, + ID: 225, + Time: 22.4, Weight: 0.001237, }, { - ID: 226, - Time: 22.5, + ID: 226, + Time: 22.5, Weight: 0.001227, }, { - ID: 227, - Time: 22.6, + ID: 227, + Time: 22.6, Weight: 0.001217, }, { - ID: 228, - Time: 22.7, + ID: 228, + Time: 22.7, Weight: 0.001207, }, { - ID: 229, - Time: 22.8, + ID: 229, + Time: 22.8, Weight: 0.001197, }, { - ID: 230, - Time: 22.9, + ID: 230, + Time: 22.9, Weight: 0.001187, }, { - ID: 231, - Time: 23, + ID: 231, + Time: 23, Weight: 0.001177, }, { - ID: 232, - Time: 23.1, + ID: 232, + Time: 23.1, Weight: 0.001167, }, { - ID: 233, - Time: 23.2, + ID: 233, + Time: 23.2, Weight: 0.001157, }, { - ID: 234, - Time: 23.3, + ID: 234, + Time: 23.3, Weight: 0.001148, }, { - ID: 235, - Time: 23.4, + ID: 235, + Time: 23.4, Weight: 0.001138, }, { - ID: 236, - Time: 23.5, + ID: 236, + Time: 23.5, Weight: 0.001129, }, { - ID: 237, - Time: 23.6, + ID: 237, + Time: 23.6, Weight: 0.001119, }, { - ID: 238, - Time: 23.7, + ID: 238, + Time: 23.7, Weight: 0.00111, }, { - ID: 239, - Time: 23.8, + ID: 239, + Time: 23.8, Weight: 0.001101, }, { - ID: 240, - Time: 23.9, + ID: 240, + Time: 23.9, Weight: 0.001092, }, { - ID: 241, - Time: 24, + ID: 241, + Time: 24, Weight: 0.001083, }, { - ID: 242, - Time: 24.1, + ID: 242, + Time: 24.1, Weight: 0.001074, }, { - ID: 243, - Time: 24.2, + ID: 243, + Time: 24.2, Weight: 0.001065, }, { - ID: 244, - Time: 24.3, + ID: 244, + Time: 24.3, Weight: 0.001056, }, { - ID: 245, - Time: 24.4, + ID: 245, + Time: 24.4, Weight: 0.001047, }, { - ID: 246, - Time: 24.5, + ID: 246, + Time: 24.5, Weight: 0.001038, }, { - ID: 247, - Time: 24.6, + ID: 247, + Time: 24.6, Weight: 0.00103, }, { - ID: 248, - Time: 24.7, + ID: 248, + Time: 24.7, Weight: 0.001021, }, { - ID: 249, - Time: 24.8, + ID: 249, + Time: 24.8, Weight: 0.001013, }, { - ID: 250, - Time: 24.9, + ID: 250, + Time: 24.9, Weight: 0.001004, }, { - ID: 251, - Time: 25, + ID: 251, + Time: 25, Weight: 0.000996, }, { - ID: 252, - Time: 25.1, + ID: 252, + Time: 25.1, Weight: 0.000988, }, { - ID: 253, - Time: 25.2, + ID: 253, + Time: 25.2, Weight: 0.00098, }, { - ID: 254, - Time: 25.3, + ID: 254, + Time: 25.3, Weight: 0.000971, }, { - ID: 255, - Time: 25.4, + ID: 255, + Time: 25.4, Weight: 0.000963, }, { - ID: 256, - Time: 25.5, + ID: 256, + Time: 25.5, Weight: 0.000955, }, { - ID: 257, - Time: 25.6, + ID: 257, + Time: 25.6, Weight: 0.000947, }, { - ID: 258, - Time: 25.7, + ID: 258, + Time: 25.7, Weight: 0.000939, }, { - ID: 259, - Time: 25.8, + ID: 259, + Time: 25.8, Weight: 0.000932, }, { - ID: 260, - Time: 25.9, + ID: 260, + Time: 25.9, Weight: 0.000924, }, { - ID: 261, - Time: 26, + ID: 261, + Time: 26, Weight: 0.000916, }, { - ID: 262, - Time: 26.1, + ID: 262, + Time: 26.1, Weight: 0.000909, }, { - ID: 263, - Time: 26.2, + ID: 263, + Time: 26.2, Weight: 0.000901, }, { - ID: 264, - Time: 26.3, + ID: 264, + Time: 26.3, Weight: 0.000894, }, { - ID: 265, - Time: 26.4, + ID: 265, + Time: 26.4, Weight: 0.000886, }, { - ID: 266, - Time: 26.5, + ID: 266, + Time: 26.5, Weight: 0.000879, }, { - ID: 267, - Time: 26.6, + ID: 267, + Time: 26.6, Weight: 0.000872, }, { - ID: 268, - Time: 26.7, + ID: 268, + Time: 26.7, Weight: 0.000864, }, { - ID: 269, - Time: 26.8, + ID: 269, + Time: 26.8, Weight: 0.000857, }, { - ID: 270, - Time: 26.9, + ID: 270, + Time: 26.9, Weight: 0.00085, }, { - ID: 271, - Time: 27, + ID: 271, + Time: 27, Weight: 0.000843, }, { - ID: 272, - Time: 27.1, + ID: 272, + Time: 27.1, Weight: 0.000836, }, { - ID: 273, - Time: 27.2, + ID: 273, + Time: 27.2, Weight: 0.000829, }, { - ID: 274, - Time: 27.3, + ID: 274, + Time: 27.3, Weight: 0.000822, }, { - ID: 275, - Time: 27.4, + ID: 275, + Time: 27.4, Weight: 0.000815, }, { - ID: 276, - Time: 27.5, + ID: 276, + Time: 27.5, Weight: 0.000809, }, { - ID: 277, - Time: 27.6, + ID: 277, + Time: 27.6, Weight: 0.000802, }, { - ID: 278, - Time: 27.7, + ID: 278, + Time: 27.7, Weight: 0.000795, }, { - ID: 279, - Time: 27.8, + ID: 279, + Time: 27.8, Weight: 0.000789, }, { - ID: 280, - Time: 27.9, + ID: 280, + Time: 27.9, Weight: 0.000782, }, { - ID: 281, - Time: 28, + ID: 281, + Time: 28, Weight: 0.000775, }, { - ID: 282, - Time: 28.1, + ID: 282, + Time: 28.1, Weight: 0.000769, }, { - ID: 283, - Time: 28.2, + ID: 283, + Time: 28.2, Weight: 0.000763, }, { - ID: 284, - Time: 28.3, + ID: 284, + Time: 28.3, Weight: 0.000756, }, { - ID: 285, - Time: 28.4, + ID: 285, + Time: 28.4, Weight: 0.00075, }, { - ID: 286, - Time: 28.5, + ID: 286, + Time: 28.5, Weight: 0.000744, }, { - ID: 287, - Time: 28.6, + ID: 287, + Time: 28.6, Weight: 0.000738, }, { - ID: 288, - Time: 28.7, + ID: 288, + Time: 28.7, Weight: 0.000731, }, { - ID: 289, - Time: 28.8, + ID: 289, + Time: 28.8, Weight: 0.000725, }, { - ID: 290, - Time: 28.9, + ID: 290, + Time: 28.9, Weight: 0.000719, }, { - ID: 291, - Time: 29, + ID: 291, + Time: 29, Weight: 0.000713, }, { - ID: 292, - Time: 29.1, + ID: 292, + Time: 29.1, Weight: 0.000707, }, { - ID: 293, - Time: 29.2, + ID: 293, + Time: 29.2, Weight: 0.000702, }, { - ID: 294, - Time: 29.3, + ID: 294, + Time: 29.3, Weight: 0.000696, }, { - ID: 295, - Time: 29.4, + ID: 295, + Time: 29.4, Weight: 0.00069, }, { - ID: 296, - Time: 29.5, + ID: 296, + Time: 29.5, Weight: 0.000684, }, { - ID: 297, - Time: 29.6, + ID: 297, + Time: 29.6, Weight: 0.000679, }, { - ID: 298, - Time: 29.7, + ID: 298, + Time: 29.7, Weight: 0.000673, }, { - ID: 299, - Time: 29.8, + ID: 299, + Time: 29.8, Weight: 0.000667, }, { - ID: 300, - Time: 29.9, + ID: 300, + Time: 29.9, Weight: 0.000662, }, { - ID: 301, - Time: 30, + ID: 301, + Time: 30, Weight: 0.000656, }, { - ID: 302, - Time: 30.1, + ID: 302, + Time: 30.1, Weight: 0.000651, }, { - ID: 303, - Time: 30.2, + ID: 303, + Time: 30.2, Weight: 0.000645, }, { - ID: 304, - Time: 30.3, + ID: 304, + Time: 30.3, Weight: 0.00064, }, { - ID: 305, - Time: 30.4, + ID: 305, + Time: 30.4, Weight: 0.000635, }, { - ID: 306, - Time: 30.5, + ID: 306, + Time: 30.5, Weight: 0.000629, }, { - ID: 307, - Time: 30.6, + ID: 307, + Time: 30.6, Weight: 0.000624, }, { - ID: 308, - Time: 30.7, + ID: 308, + Time: 30.7, Weight: 0.000619, }, { - ID: 309, - Time: 30.8, + ID: 309, + Time: 30.8, Weight: 0.000614, }, { - ID: 310, - Time: 30.9, + ID: 310, + Time: 30.9, Weight: 0.000609, }, { - ID: 311, - Time: 31, + ID: 311, + Time: 31, Weight: 0.000604, }, { - ID: 312, - Time: 31.1, + ID: 312, + Time: 31.1, Weight: 0.000599, }, { - ID: 313, - Time: 31.2, + ID: 313, + Time: 31.2, Weight: 0.000594, }, { - ID: 314, - Time: 31.3, + ID: 314, + Time: 31.3, Weight: 0.000589, }, { - ID: 315, - Time: 31.4, + ID: 315, + Time: 31.4, Weight: 0.000584, }, { - ID: 316, - Time: 31.5, + ID: 316, + Time: 31.5, Weight: 0.000579, }, { - ID: 317, - Time: 31.6, + ID: 317, + Time: 31.6, Weight: 0.000574, }, { - ID: 318, - Time: 31.7, + ID: 318, + Time: 31.7, Weight: 0.00057, }, { - ID: 319, - Time: 31.8, + ID: 319, + Time: 31.8, Weight: 0.000565, }, { - ID: 320, - Time: 31.9, + ID: 320, + Time: 31.9, Weight: 0.00056, }, { - ID: 321, - Time: 32, + ID: 321, + Time: 32, Weight: 0.000555, }, { - ID: 322, - Time: 32.1, + ID: 322, + Time: 32.1, Weight: 0.000551, }, { - ID: 323, - Time: 32.2, + ID: 323, + Time: 32.2, Weight: 0.000546, }, { - ID: 324, - Time: 32.3, + ID: 324, + Time: 32.3, Weight: 0.000542, }, { - ID: 325, - Time: 32.4, + ID: 325, + Time: 32.4, Weight: 0.000537, }, { - ID: 326, - Time: 32.5, + ID: 326, + Time: 32.5, Weight: 0.000533, }, { - ID: 327, - Time: 32.6, + ID: 327, + Time: 32.6, Weight: 0.000528, }, { - ID: 328, - Time: 32.7, + ID: 328, + Time: 32.7, Weight: 0.000524, }, { - ID: 329, - Time: 32.8, + ID: 329, + Time: 32.8, Weight: 0.00052, }, { - ID: 330, - Time: 32.9, + ID: 330, + Time: 32.9, Weight: 0.000515, }, { - ID: 331, - Time: 33, + ID: 331, + Time: 33, Weight: 0.000511, }, { - ID: 332, - Time: 33.1, + ID: 332, + Time: 33.1, Weight: 0.000507, }, { - ID: 333, - Time: 33.2, + ID: 333, + Time: 33.2, Weight: 0.000503, }, { - ID: 334, - Time: 33.3, + ID: 334, + Time: 33.3, Weight: 0.000498, }, { - ID: 335, - Time: 33.4, + ID: 335, + Time: 33.4, Weight: 0.000494, }, { - ID: 336, - Time: 33.5, + ID: 336, + Time: 33.5, Weight: 0.00049, }, { - ID: 337, - Time: 33.6, + ID: 337, + Time: 33.6, Weight: 0.000486, }, { - ID: 338, - Time: 33.7, + ID: 338, + Time: 33.7, Weight: 0.000482, }, { - ID: 339, - Time: 33.8, + ID: 339, + Time: 33.8, Weight: 0.000478, }, { - ID: 340, - Time: 33.9, + ID: 340, + Time: 33.9, Weight: 0.000474, }, { - ID: 341, - Time: 34, + ID: 341, + Time: 34, Weight: 0.00047, }, { - ID: 342, - Time: 34.1, + ID: 342, + Time: 34.1, Weight: 0.000466, }, { - ID: 343, - Time: 34.2, + ID: 343, + Time: 34.2, Weight: 0.000462, }, { - ID: 344, - Time: 34.3, + ID: 344, + Time: 34.3, Weight: 0.000458, }, { - ID: 345, - Time: 34.4, + ID: 345, + Time: 34.4, Weight: 0.000455, }, { - ID: 346, - Time: 34.5, + ID: 346, + Time: 34.5, Weight: 0.000451, }, { - ID: 347, - Time: 34.6, + ID: 347, + Time: 34.6, Weight: 0.000447, }, { - ID: 348, - Time: 34.7, + ID: 348, + Time: 34.7, Weight: 0.000443, }, { - ID: 349, - Time: 34.8, + ID: 349, + Time: 34.8, Weight: 0.00044, }, { - ID: 350, - Time: 34.9, + ID: 350, + Time: 34.9, Weight: 0.000436, }, { - ID: 351, - Time: 35, + ID: 351, + Time: 35, Weight: 0.000432, }, { - ID: 352, - Time: 35.1, + ID: 352, + Time: 35.1, Weight: 0.000429, }, { - ID: 353, - Time: 35.2, + ID: 353, + Time: 35.2, Weight: 0.000425, }, { - ID: 354, - Time: 35.3, + ID: 354, + Time: 35.3, Weight: 0.000422, }, { - ID: 355, - Time: 35.4, + ID: 355, + Time: 35.4, Weight: 0.000418, }, { - ID: 356, - Time: 35.5, + ID: 356, + Time: 35.5, Weight: 0.000415, }, { - ID: 357, - Time: 35.6, + ID: 357, + Time: 35.6, Weight: 0.000411, }, { - ID: 358, - Time: 35.7, + ID: 358, + Time: 35.7, Weight: 0.000408, }, { - ID: 359, - Time: 35.8, + ID: 359, + Time: 35.8, Weight: 0.000405, }, { - ID: 360, - Time: 35.9, + ID: 360, + Time: 35.9, Weight: 0.000401, }, { - ID: 361, - Time: 36, + ID: 361, + Time: 36, Weight: 0.000398, }, { - ID: 362, - Time: 36.1, + ID: 362, + Time: 36.1, Weight: 0.000395, }, { - ID: 363, - Time: 36.2, + ID: 363, + Time: 36.2, Weight: 0.000391, }, { - ID: 364, - Time: 36.3, + ID: 364, + Time: 36.3, Weight: 0.000388, }, { - ID: 365, - Time: 36.4, + ID: 365, + Time: 36.4, Weight: 0.000385, }, { - ID: 366, - Time: 36.5, + ID: 366, + Time: 36.5, Weight: 0.000382, }, { - ID: 367, - Time: 36.6, + ID: 367, + Time: 36.6, Weight: 0.000378, }, { - ID: 368, - Time: 36.7, + ID: 368, + Time: 36.7, Weight: 0.000375, }, { - ID: 369, - Time: 36.8, + ID: 369, + Time: 36.8, Weight: 0.000372, }, { - ID: 370, - Time: 36.9, + ID: 370, + Time: 36.9, Weight: 0.000369, }, { - ID: 371, - Time: 37, + ID: 371, + Time: 37, Weight: 0.000366, }, { - ID: 372, - Time: 37.1, + ID: 372, + Time: 37.1, Weight: 0.000363, }, { - ID: 373, - Time: 37.2, + ID: 373, + Time: 37.2, Weight: 0.00036, }, { - ID: 374, - Time: 37.3, + ID: 374, + Time: 37.3, Weight: 0.000357, }, { - ID: 375, - Time: 37.4, + ID: 375, + Time: 37.4, Weight: 0.000354, }, { - ID: 376, - Time: 37.5, + ID: 376, + Time: 37.5, Weight: 0.000351, }, { - ID: 377, - Time: 37.6, + ID: 377, + Time: 37.6, Weight: 0.000348, }, { - ID: 378, - Time: 37.7, + ID: 378, + Time: 37.7, Weight: 0.000345, }, { - ID: 379, - Time: 37.8, + ID: 379, + Time: 37.8, Weight: 0.000342, }, { - ID: 380, - Time: 37.9, + ID: 380, + Time: 37.9, Weight: 0.00034, }, { - ID: 381, - Time: 38, + ID: 381, + Time: 38, Weight: 0.000337, }, { - ID: 382, - Time: 38.1, + ID: 382, + Time: 38.1, Weight: 0.000334, }, { - ID: 383, - Time: 38.2, + ID: 383, + Time: 38.2, Weight: 0.000331, }, { - ID: 384, - Time: 38.3, + ID: 384, + Time: 38.3, Weight: 0.000328, }, { - ID: 385, - Time: 38.4, + ID: 385, + Time: 38.4, Weight: 0.000326, }, { - ID: 386, - Time: 38.5, + ID: 386, + Time: 38.5, Weight: 0.000323, }, { - ID: 387, - Time: 38.6, + ID: 387, + Time: 38.6, Weight: 0.00032, }, { - ID: 388, - Time: 38.7, + ID: 388, + Time: 38.7, Weight: 0.000318, }, { - ID: 389, - Time: 38.8, + ID: 389, + Time: 38.8, Weight: 0.000315, }, { - ID: 390, - Time: 38.9, + ID: 390, + Time: 38.9, Weight: 0.000312, }, { - ID: 391, - Time: 39, + ID: 391, + Time: 39, Weight: 0.00031, }, { - ID: 392, - Time: 39.1, + ID: 392, + Time: 39.1, Weight: 0.000307, }, { - ID: 393, - Time: 39.2, + ID: 393, + Time: 39.2, Weight: 0.000305, }, { - ID: 394, - Time: 39.3, + ID: 394, + Time: 39.3, Weight: 0.000302, }, { - ID: 395, - Time: 39.4, + ID: 395, + Time: 39.4, Weight: 0.0003, }, { - ID: 396, - Time: 39.5, + ID: 396, + Time: 39.5, Weight: 0.000297, }, { - ID: 397, - Time: 39.6, + ID: 397, + Time: 39.6, Weight: 0.000295, }, { - ID: 398, - Time: 39.7, + ID: 398, + Time: 39.7, Weight: 0.000292, }, { - ID: 399, - Time: 39.8, + ID: 399, + Time: 39.8, Weight: 0.00029, }, { - ID: 400, - Time: 39.9, + ID: 400, + Time: 39.9, Weight: 0.000287, }, { - ID: 401, - Time: 40, + ID: 401, + Time: 40, Weight: 0.000285, }, { - ID: 402, - Time: 40.1, + ID: 402, + Time: 40.1, Weight: 0.000283, }, { - ID: 403, - Time: 40.2, + ID: 403, + Time: 40.2, Weight: 0.00028, }, { - ID: 404, - Time: 40.3, + ID: 404, + Time: 40.3, Weight: 0.000278, }, { - ID: 405, - Time: 40.4, + ID: 405, + Time: 40.4, Weight: 0.000276, }, { - ID: 406, - Time: 40.5, + ID: 406, + Time: 40.5, Weight: 0.000273, }, { - ID: 407, - Time: 40.6, + ID: 407, + Time: 40.6, Weight: 0.000271, }, { - ID: 408, - Time: 40.7, + ID: 408, + Time: 40.7, Weight: 0.000269, }, { - ID: 409, - Time: 40.8, + ID: 409, + Time: 40.8, Weight: 0.000267, }, { - ID: 410, - Time: 40.9, + ID: 410, + Time: 40.9, Weight: 0.000264, }, { - ID: 411, - Time: 41, + ID: 411, + Time: 41, Weight: 0.000262, }, { - ID: 412, - Time: 41.1, + ID: 412, + Time: 41.1, Weight: 0.00026, }, { - ID: 413, - Time: 41.2, + ID: 413, + Time: 41.2, Weight: 0.000258, }, { - ID: 414, - Time: 41.3, + ID: 414, + Time: 41.3, Weight: 0.000256, }, { - ID: 415, - Time: 41.4, + ID: 415, + Time: 41.4, Weight: 0.000254, }, { - ID: 416, - Time: 41.5, + ID: 416, + Time: 41.5, Weight: 0.000251, }, { - ID: 417, - Time: 41.6, + ID: 417, + Time: 41.6, Weight: 0.000249, }, { - ID: 418, - Time: 41.7, + ID: 418, + Time: 41.7, Weight: 0.000247, }, { - ID: 419, - Time: 41.8, + ID: 419, + Time: 41.8, Weight: 0.000245, }, { - ID: 420, - Time: 41.9, + ID: 420, + Time: 41.9, Weight: 0.000243, }, { - ID: 421, - Time: 42, + ID: 421, + Time: 42, Weight: 0.000241, }, { - ID: 422, - Time: 42.1, + ID: 422, + Time: 42.1, Weight: 0.000239, }, { - ID: 423, - Time: 42.2, + ID: 423, + Time: 42.2, Weight: 0.000237, }, { - ID: 424, - Time: 42.3, + ID: 424, + Time: 42.3, Weight: 0.000235, }, { - ID: 425, - Time: 42.4, + ID: 425, + Time: 42.4, Weight: 0.000233, }, { - ID: 426, - Time: 42.5, + ID: 426, + Time: 42.5, Weight: 0.000231, }, { - ID: 427, - Time: 42.6, + ID: 427, + Time: 42.6, Weight: 0.000229, }, { - ID: 428, - Time: 42.7, + ID: 428, + Time: 42.7, Weight: 0.000228, }, { - ID: 429, - Time: 42.8, + ID: 429, + Time: 42.8, Weight: 0.000226, }, { - ID: 430, - Time: 42.9, + ID: 430, + Time: 42.9, Weight: 0.000224, }, { - ID: 431, - Time: 43, + ID: 431, + Time: 43, Weight: 0.000222, }, { - ID: 432, - Time: 43.1, + ID: 432, + Time: 43.1, Weight: 0.00022, }, { - ID: 433, - Time: 43.2, + ID: 433, + Time: 43.2, Weight: 0.000218, }, { - ID: 434, - Time: 43.3, + ID: 434, + Time: 43.3, Weight: 0.000216, }, { - ID: 435, - Time: 43.4, + ID: 435, + Time: 43.4, Weight: 0.000215, }, { - ID: 436, - Time: 43.5, + ID: 436, + Time: 43.5, Weight: 0.000213, }, { - ID: 437, - Time: 43.6, + ID: 437, + Time: 43.6, Weight: 0.000211, }, { - ID: 438, - Time: 43.7, + ID: 438, + Time: 43.7, Weight: 0.000209, }, { - ID: 439, - Time: 43.8, + ID: 439, + Time: 43.8, Weight: 0.000208, }, { - ID: 440, - Time: 43.9, + ID: 440, + Time: 43.9, Weight: 0.000206, }, { - ID: 441, - Time: 44, + ID: 441, + Time: 44, Weight: 0.000204, }, { - ID: 442, - Time: 44.1, + ID: 442, + Time: 44.1, Weight: 0.000202, }, { - ID: 443, - Time: 44.2, + ID: 443, + Time: 44.2, Weight: 0.000201, }, { - ID: 444, - Time: 44.3, + ID: 444, + Time: 44.3, Weight: 0.000199, }, { - ID: 445, - Time: 44.4, + ID: 445, + Time: 44.4, Weight: 0.000197, }, { - ID: 446, - Time: 44.5, + ID: 446, + Time: 44.5, Weight: 0.000196, }, { - ID: 447, - Time: 44.6, + ID: 447, + Time: 44.6, Weight: 0.000194, }, { - ID: 448, - Time: 44.7, + ID: 448, + Time: 44.7, Weight: 0.000193, }, { - ID: 449, - Time: 44.8, + ID: 449, + Time: 44.8, Weight: 0.000191, }, { - ID: 450, - Time: 44.9, + ID: 450, + Time: 44.9, Weight: 0.000189, }, { - ID: 451, - Time: 45, + ID: 451, + Time: 45, Weight: 0.000188, }, { - ID: 452, - Time: 45.1, + ID: 452, + Time: 45.1, Weight: 0.000186, }, { - ID: 453, - Time: 45.2, + ID: 453, + Time: 45.2, Weight: 0.000185, }, { - ID: 454, - Time: 45.3, + ID: 454, + Time: 45.3, Weight: 0.000183, }, { - ID: 455, - Time: 45.4, + ID: 455, + Time: 45.4, Weight: 0.000182, }, { - ID: 456, - Time: 45.5, + ID: 456, + Time: 45.5, Weight: 0.00018, }, { - ID: 457, - Time: 45.6, + ID: 457, + Time: 45.6, Weight: 0.000179, }, { - ID: 458, - Time: 45.7, + ID: 458, + Time: 45.7, Weight: 0.000177, }, { - ID: 459, - Time: 45.8, + ID: 459, + Time: 45.8, Weight: 0.000176, }, { - ID: 460, - Time: 45.9, + ID: 460, + Time: 45.9, Weight: 0.000174, }, { - ID: 461, - Time: 46, + ID: 461, + Time: 46, Weight: 0.000173, }, { - ID: 462, - Time: 46.1, + ID: 462, + Time: 46.1, Weight: 0.000171, }, { - ID: 463, - Time: 46.2, + ID: 463, + Time: 46.2, Weight: 0.00017, }, { - ID: 464, - Time: 46.3, + ID: 464, + Time: 46.3, Weight: 0.000168, }, { - ID: 465, - Time: 46.4, + ID: 465, + Time: 46.4, Weight: 0.000167, }, { - ID: 466, - Time: 46.5, + ID: 466, + Time: 46.5, Weight: 0.000166, }, { - ID: 467, - Time: 46.6, + ID: 467, + Time: 46.6, Weight: 0.000164, }, { - ID: 468, - Time: 46.7, + ID: 468, + Time: 46.7, Weight: 0.000163, }, { - ID: 469, - Time: 46.8, + ID: 469, + Time: 46.8, Weight: 0.000162, }, { - ID: 470, - Time: 46.9, + ID: 470, + Time: 46.9, Weight: 0.00016, }, { - ID: 471, - Time: 47, + ID: 471, + Time: 47, Weight: 0.000159, }, { - ID: 472, - Time: 47.1, + ID: 472, + Time: 47.1, Weight: 0.000158, }, { - ID: 473, - Time: 47.2, + ID: 473, + Time: 47.2, Weight: 0.000156, }, { - ID: 474, - Time: 47.3, + ID: 474, + Time: 47.3, Weight: 0.000155, }, { - ID: 475, - Time: 47.4, + ID: 475, + Time: 47.4, Weight: 0.000154, }, { - ID: 476, - Time: 47.5, + ID: 476, + Time: 47.5, Weight: 0.000152, }, { - ID: 477, - Time: 47.6, + ID: 477, + Time: 47.6, Weight: 0.000151, }, { - ID: 478, - Time: 47.7, + ID: 478, + Time: 47.7, Weight: 0.00015, }, { - ID: 479, - Time: 47.8, + ID: 479, + Time: 47.8, Weight: 0.000149, }, { - ID: 480, - Time: 47.9, + ID: 480, + Time: 47.9, Weight: 0.000147, }, { - ID: 481, - Time: 48, + ID: 481, + Time: 48, Weight: 0.000146, }, { - ID: 482, - Time: 48.1, + ID: 482, + Time: 48.1, Weight: 0.000145, }, { - ID: 483, - Time: 48.2, + ID: 483, + Time: 48.2, Weight: 0.000144, }, { - ID: 484, - Time: 48.3, + ID: 484, + Time: 48.3, Weight: 0.000143, }, { - ID: 485, - Time: 48.4, + ID: 485, + Time: 48.4, Weight: 0.000141, }, { - ID: 486, - Time: 48.5, + ID: 486, + Time: 48.5, Weight: 0.00014, }, { - ID: 487, - Time: 48.6, + ID: 487, + Time: 48.6, Weight: 0.000139, }, { - ID: 488, - Time: 48.7, + ID: 488, + Time: 48.7, Weight: 0.000138, }, { - ID: 489, - Time: 48.8, + ID: 489, + Time: 48.8, Weight: 0.000137, }, { - ID: 490, - Time: 48.9, + ID: 490, + Time: 48.9, Weight: 0.000136, }, { - ID: 491, - Time: 49, + ID: 491, + Time: 49, Weight: 0.000135, }, { - ID: 492, - Time: 49.1, + ID: 492, + Time: 49.1, Weight: 0.000133, }, { - ID: 493, - Time: 49.2, + ID: 493, + Time: 49.2, Weight: 0.000132, }, { - ID: 494, - Time: 49.3, + ID: 494, + Time: 49.3, Weight: 0.000131, }, { - ID: 495, - Time: 49.4, + ID: 495, + Time: 49.4, Weight: 0.00013, }, { - ID: 496, - Time: 49.5, + ID: 496, + Time: 49.5, Weight: 0.000129, }, { - ID: 497, - Time: 49.6, + ID: 497, + Time: 49.6, Weight: 0.000128, }, { - ID: 498, - Time: 49.7, + ID: 498, + Time: 49.7, Weight: 0.000127, }, { - ID: 499, - Time: 49.8, + ID: 499, + Time: 49.8, Weight: 0.000126, }, { - ID: 500, - Time: 49.9, + ID: 500, + Time: 49.9, Weight: 0.000125, }, { - ID: 501, - Time: 50, + ID: 501, + Time: 50, Weight: 0.000124, }, { - ID: 502, - Time: 50.1, + ID: 502, + Time: 50.1, Weight: 0.000123, }, { - ID: 503, - Time: 50.2, + ID: 503, + Time: 50.2, Weight: 0.000122, }, { - ID: 504, - Time: 50.3, + ID: 504, + Time: 50.3, Weight: 0.000121, }, { - ID: 505, - Time: 50.4, + ID: 505, + Time: 50.4, Weight: 0.00012, }, { - ID: 506, - Time: 50.5, + ID: 506, + Time: 50.5, Weight: 0.000119, }, { - ID: 507, - Time: 50.6, + ID: 507, + Time: 50.6, Weight: 0.000118, }, { - ID: 508, - Time: 50.7, + ID: 508, + Time: 50.7, Weight: 0.000117, }, { - ID: 509, - Time: 50.8, + ID: 509, + Time: 50.8, Weight: 0.000116, }, { - ID: 510, - Time: 50.9, + ID: 510, + Time: 50.9, Weight: 0.000115, }, { - ID: 511, - Time: 51, + ID: 511, + Time: 51, Weight: 0.000114, }, { - ID: 512, - Time: 51.1, + ID: 512, + Time: 51.1, Weight: 0.000113, }, { - ID: 513, - Time: 51.2, + ID: 513, + Time: 51.2, Weight: 0.000112, }, { - ID: 514, - Time: 51.3, + ID: 514, + Time: 51.3, Weight: 0.000111, }, { - ID: 515, - Time: 51.4, + ID: 515, + Time: 51.4, Weight: 0.00011, }, { - ID: 516, - Time: 51.5, + ID: 516, + Time: 51.5, Weight: 0.000109, }, { - ID: 517, - Time: 51.6, + ID: 517, + Time: 51.6, Weight: 0.000108, }, { - ID: 518, - Time: 51.7, + ID: 518, + Time: 51.7, Weight: 0.000107, }, { - ID: 519, - Time: 51.8, + ID: 519, + Time: 51.8, Weight: 0.000106, }, { - ID: 520, - Time: 51.9, + ID: 520, + Time: 51.9, Weight: 0.000106, }, { - ID: 521, - Time: 52, + ID: 521, + Time: 52, Weight: 0.000105, }, { - ID: 522, - Time: 52.1, + ID: 522, + Time: 52.1, Weight: 0.000104, }, { - ID: 523, - Time: 52.2, + ID: 523, + Time: 52.2, Weight: 0.000103, }, { - ID: 524, - Time: 52.3, + ID: 524, + Time: 52.3, Weight: 0.000102, }, { - ID: 525, - Time: 52.4, + ID: 525, + Time: 52.4, Weight: 0.000101, }, { - ID: 526, - Time: 52.5, + ID: 526, + Time: 52.5, Weight: 0.0001, }, { - ID: 527, - Time: 52.6, + ID: 527, + Time: 52.6, Weight: 0.0001, }, { - ID: 528, - Time: 52.7, + ID: 528, + Time: 52.7, Weight: 0.000099, }, { - ID: 529, - Time: 52.8, + ID: 529, + Time: 52.8, Weight: 0.000098, }, { - ID: 530, - Time: 52.9, + ID: 530, + Time: 52.9, Weight: 0.000097, }, { - ID: 531, - Time: 53, + ID: 531, + Time: 53, Weight: 0.000096, }, { - ID: 532, - Time: 53.1, + ID: 532, + Time: 53.1, Weight: 0.000096, }, { - ID: 533, - Time: 53.2, + ID: 533, + Time: 53.2, Weight: 0.000095, }, { - ID: 534, - Time: 53.3, + ID: 534, + Time: 53.3, Weight: 0.000094, }, { - ID: 535, - Time: 53.4, + ID: 535, + Time: 53.4, Weight: 0.000093, }, { - ID: 536, - Time: 53.5, + ID: 536, + Time: 53.5, Weight: 0.000092, }, { - ID: 537, - Time: 53.6, + ID: 537, + Time: 53.6, Weight: 0.000092, }, { - ID: 538, - Time: 53.7, + ID: 538, + Time: 53.7, Weight: 0.000091, }, { - ID: 539, - Time: 53.8, + ID: 539, + Time: 53.8, Weight: 0.00009, }, { - ID: 540, - Time: 53.9, + ID: 540, + Time: 53.9, Weight: 0.000089, }, { - ID: 541, - Time: 54, + ID: 541, + Time: 54, Weight: 0.000089, }, { - ID: 542, - Time: 54.1, + ID: 542, + Time: 54.1, Weight: 0.000088, }, { - ID: 543, - Time: 54.2, + ID: 543, + Time: 54.2, Weight: 0.000087, }, { - ID: 544, - Time: 54.3, + ID: 544, + Time: 54.3, Weight: 0.000086, }, { - ID: 545, - Time: 54.4, + ID: 545, + Time: 54.4, Weight: 0.000086, }, { - ID: 546, - Time: 54.5, + ID: 546, + Time: 54.5, Weight: 0.000085, }, { - ID: 547, - Time: 54.6, + ID: 547, + Time: 54.6, Weight: 0.000084, }, { - ID: 548, - Time: 54.7, + ID: 548, + Time: 54.7, Weight: 0.000084, }, { - ID: 549, - Time: 54.8, + ID: 549, + Time: 54.8, Weight: 0.000083, }, { - ID: 550, - Time: 54.9, + ID: 550, + Time: 54.9, Weight: 0.000082, }, { - ID: 551, - Time: 55, + ID: 551, + Time: 55, Weight: 0.000082, }, { - ID: 552, - Time: 55.1, + ID: 552, + Time: 55.1, Weight: 0.000081, }, { - ID: 553, - Time: 55.2, + ID: 553, + Time: 55.2, Weight: 0.00008, }, { - ID: 554, - Time: 55.3, + ID: 554, + Time: 55.3, Weight: 0.00008, }, { - ID: 555, - Time: 55.4, + ID: 555, + Time: 55.4, Weight: 0.000079, }, { - ID: 556, - Time: 55.5, + ID: 556, + Time: 55.5, Weight: 0.000078, }, { - ID: 557, - Time: 55.6, + ID: 557, + Time: 55.6, Weight: 0.000078, }, { - ID: 558, - Time: 55.7, + ID: 558, + Time: 55.7, Weight: 0.000077, }, { - ID: 559, - Time: 55.8, + ID: 559, + Time: 55.8, Weight: 0.000076, }, { - ID: 560, - Time: 55.9, + ID: 560, + Time: 55.9, Weight: 0.000076, }, { - ID: 561, - Time: 56, + ID: 561, + Time: 56, Weight: 0.000075, }, { - ID: 562, - Time: 56.1, + ID: 562, + Time: 56.1, Weight: 0.000074, }, { - ID: 563, - Time: 56.2, + ID: 563, + Time: 56.2, Weight: 0.000074, }, { - ID: 564, - Time: 56.3, + ID: 564, + Time: 56.3, Weight: 0.000073, }, { - ID: 565, - Time: 56.4, + ID: 565, + Time: 56.4, Weight: 0.000073, }, { - ID: 566, - Time: 56.5, + ID: 566, + Time: 56.5, Weight: 0.000072, }, { - ID: 567, - Time: 56.6, + ID: 567, + Time: 56.6, Weight: 0.000071, }, { - ID: 568, - Time: 56.7, + ID: 568, + Time: 56.7, Weight: 0.000071, }, { - ID: 569, - Time: 56.8, + ID: 569, + Time: 56.8, Weight: 0.00007, }, { - ID: 570, - Time: 56.9, + ID: 570, + Time: 56.9, Weight: 0.00007, }, { - ID: 571, - Time: 57, + ID: 571, + Time: 57, Weight: 0.000069, }, { - ID: 572, - Time: 57.1, + ID: 572, + Time: 57.1, Weight: 0.000068, }, { - ID: 573, - Time: 57.2, + ID: 573, + Time: 57.2, Weight: 0.000068, }, { - ID: 574, - Time: 57.3, + ID: 574, + Time: 57.3, Weight: 0.000067, }, { - ID: 575, - Time: 57.4, + ID: 575, + Time: 57.4, Weight: 0.000067, }, { - ID: 576, - Time: 57.5, + ID: 576, + Time: 57.5, Weight: 0.000066, }, { - ID: 577, - Time: 57.6, + ID: 577, + Time: 57.6, Weight: 0.000066, }, { - ID: 578, - Time: 57.7, + ID: 578, + Time: 57.7, Weight: 0.000065, }, { - ID: 579, - Time: 57.8, + ID: 579, + Time: 57.8, Weight: 0.000065, }, { - ID: 580, - Time: 57.9, + ID: 580, + Time: 57.9, Weight: 0.000064, }, { - ID: 581, - Time: 58, + ID: 581, + Time: 58, Weight: 0.000063, }, { - ID: 582, - Time: 58.1, + ID: 582, + Time: 58.1, Weight: 0.000063, }, { - ID: 583, - Time: 58.2, + ID: 583, + Time: 58.2, Weight: 0.000062, }, { - ID: 584, - Time: 58.3, + ID: 584, + Time: 58.3, Weight: 0.000062, }, { - ID: 585, - Time: 58.4, + ID: 585, + Time: 58.4, Weight: 0.000061, }, { - ID: 586, - Time: 58.5, + ID: 586, + Time: 58.5, Weight: 0.000061, }, { - ID: 587, - Time: 58.6, + ID: 587, + Time: 58.6, Weight: 0.00006, }, { - ID: 588, - Time: 58.7, + ID: 588, + Time: 58.7, Weight: 0.00006, }, { - ID: 589, - Time: 58.8, + ID: 589, + Time: 58.8, Weight: 0.000059, }, { - ID: 590, - Time: 58.9, + ID: 590, + Time: 58.9, Weight: 0.000059, }, { - ID: 591, - Time: 59, + ID: 591, + Time: 59, Weight: 0.000058, }, { - ID: 592, - Time: 59.1, + ID: 592, + Time: 59.1, Weight: 0.000058, }, { - ID: 593, - Time: 59.2, + ID: 593, + Time: 59.2, Weight: 0.000057, }, { - ID: 594, - Time: 59.3, + ID: 594, + Time: 59.3, Weight: 0.000057, }, { - ID: 595, - Time: 59.4, + ID: 595, + Time: 59.4, Weight: 0.000056, }, { - ID: 596, - Time: 59.5, + ID: 596, + Time: 59.5, Weight: 0.000056, }, { - ID: 597, - Time: 59.6, + ID: 597, + Time: 59.6, Weight: 0.000056, }, { - ID: 598, - Time: 59.7, + ID: 598, + Time: 59.7, Weight: 0.000055, }, { - ID: 599, - Time: 59.8, + ID: 599, + Time: 59.8, Weight: 0.000055, }, { - ID: 600, - Time: 59.9, + ID: 600, + Time: 59.9, Weight: 0.000054, }, { - ID: 601, - Time: 60, + ID: 601, + Time: 60, Weight: 0.000054, }, { - ID: 602, - Time: 60.1, + ID: 602, + Time: 60.1, Weight: 0.000053, }, { - ID: 603, - Time: 60.2, + ID: 603, + Time: 60.2, Weight: 0.000053, }, { - ID: 604, - Time: 60.3, + ID: 604, + Time: 60.3, Weight: 0.000052, }, { - ID: 605, - Time: 60.4, + ID: 605, + Time: 60.4, Weight: 0.000052, }, { - ID: 606, - Time: 60.5, + ID: 606, + Time: 60.5, Weight: 0.000052, }, { - ID: 607, - Time: 60.6, + ID: 607, + Time: 60.6, Weight: 0.000051, }, { - ID: 608, - Time: 60.7, + ID: 608, + Time: 60.7, Weight: 0.000051, }, { - ID: 609, - Time: 60.8, + ID: 609, + Time: 60.8, Weight: 0.00005, }, { - ID: 610, - Time: 60.9, + ID: 610, + Time: 60.9, Weight: 0.00005, }, { - ID: 611, - Time: 61, + ID: 611, + Time: 61, Weight: 0.000049, }, { - ID: 612, - Time: 61.1, + ID: 612, + Time: 61.1, Weight: 0.000049, }, { - ID: 613, - Time: 61.2, + ID: 613, + Time: 61.2, Weight: 0.000049, }, { - ID: 614, - Time: 61.3, + ID: 614, + Time: 61.3, Weight: 0.000048, }, { - ID: 615, - Time: 61.4, + ID: 615, + Time: 61.4, Weight: 0.000048, }, { - ID: 616, - Time: 61.5, + ID: 616, + Time: 61.5, Weight: 0.000047, }, { - ID: 617, - Time: 61.6, + ID: 617, + Time: 61.6, Weight: 0.000047, }, { - ID: 618, - Time: 61.7, + ID: 618, + Time: 61.7, Weight: 0.000047, }, { - ID: 619, - Time: 61.8, + ID: 619, + Time: 61.8, Weight: 0.000046, }, { - ID: 620, - Time: 61.9, + ID: 620, + Time: 61.9, Weight: 0.000046, }, { - ID: 621, - Time: 62, + ID: 621, + Time: 62, Weight: 0.000045, }, { - ID: 622, - Time: 62.1, + ID: 622, + Time: 62.1, Weight: 0.000045, }, { - ID: 623, - Time: 62.2, + ID: 623, + Time: 62.2, Weight: 0.000045, }, { - ID: 624, - Time: 62.3, + ID: 624, + Time: 62.3, Weight: 0.000044, }, { - ID: 625, - Time: 62.4, + ID: 625, + Time: 62.4, Weight: 0.000044, }, { - ID: 626, - Time: 62.5, + ID: 626, + Time: 62.5, Weight: 0.000044, }, { - ID: 627, - Time: 62.6, + ID: 627, + Time: 62.6, Weight: 0.000043, }, { - ID: 628, - Time: 62.7, + ID: 628, + Time: 62.7, Weight: 0.000043, }, { - ID: 629, - Time: 62.8, + ID: 629, + Time: 62.8, Weight: 0.000043, }, { - ID: 630, - Time: 62.9, + ID: 630, + Time: 62.9, Weight: 0.000042, }, { - ID: 631, - Time: 63, + ID: 631, + Time: 63, Weight: 0.000042, }, { - ID: 632, - Time: 63.1, + ID: 632, + Time: 63.1, Weight: 0.000041, }, { - ID: 633, - Time: 63.2, + ID: 633, + Time: 63.2, Weight: 0.000041, }, { - ID: 634, - Time: 63.3, + ID: 634, + Time: 63.3, Weight: 0.000041, }, { - ID: 635, - Time: 63.4, + ID: 635, + Time: 63.4, Weight: 0.00004, }, { - ID: 636, - Time: 63.5, + ID: 636, + Time: 63.5, Weight: 0.00004, }, { - ID: 637, - Time: 63.6, + ID: 637, + Time: 63.6, Weight: 0.00004, }, { - ID: 638, - Time: 63.7, + ID: 638, + Time: 63.7, Weight: 0.000039, }, { - ID: 639, - Time: 63.8, + ID: 639, + Time: 63.8, Weight: 0.000039, }, { - ID: 640, - Time: 63.9, + ID: 640, + Time: 63.9, Weight: 0.000039, }, { - ID: 641, - Time: 64, + ID: 641, + Time: 64, Weight: 0.000038, }, { - ID: 642, - Time: 64.1, + ID: 642, + Time: 64.1, Weight: 0.000038, }, { - ID: 643, - Time: 64.2, + ID: 643, + Time: 64.2, Weight: 0.000038, }, { - ID: 644, - Time: 64.3, + ID: 644, + Time: 64.3, Weight: 0.000038, }, { - ID: 645, - Time: 64.4, + ID: 645, + Time: 64.4, Weight: 0.000037, }, { - ID: 646, - Time: 64.5, + ID: 646, + Time: 64.5, Weight: 0.000037, }, { - ID: 647, - Time: 64.6, + ID: 647, + Time: 64.6, Weight: 0.000037, }, { - ID: 648, - Time: 64.7, + ID: 648, + Time: 64.7, Weight: 0.000036, }, { - ID: 649, - Time: 64.8, + ID: 649, + Time: 64.8, Weight: 0.000036, }, { - ID: 650, - Time: 64.9, + ID: 650, + Time: 64.9, Weight: 0.000036, }, { - ID: 651, - Time: 65, + ID: 651, + Time: 65, Weight: 0.000035, }, { - ID: 652, - Time: 65.1, + ID: 652, + Time: 65.1, Weight: 0.000035, }, { - ID: 653, - Time: 65.2, + ID: 653, + Time: 65.2, Weight: 0.000035, }, { - ID: 654, - Time: 65.3, + ID: 654, + Time: 65.3, Weight: 0.000035, }, { - ID: 655, - Time: 65.4, + ID: 655, + Time: 65.4, Weight: 0.000034, }, { - ID: 656, - Time: 65.5, + ID: 656, + Time: 65.5, Weight: 0.000034, }, { - ID: 657, - Time: 65.6, + ID: 657, + Time: 65.6, Weight: 0.000034, }, { - ID: 658, - Time: 65.7, + ID: 658, + Time: 65.7, Weight: 0.000033, }, { - ID: 659, - Time: 65.8, + ID: 659, + Time: 65.8, Weight: 0.000033, }, { - ID: 660, - Time: 65.9, + ID: 660, + Time: 65.9, Weight: 0.000033, }, { - ID: 661, - Time: 66, + ID: 661, + Time: 66, Weight: 0.000033, }, { - ID: 662, - Time: 66.1, + ID: 662, + Time: 66.1, Weight: 0.000032, }, { - ID: 663, - Time: 66.2, + ID: 663, + Time: 66.2, Weight: 0.000032, }, { - ID: 664, - Time: 66.3, + ID: 664, + Time: 66.3, Weight: 0.000032, }, { - ID: 665, - Time: 66.4, + ID: 665, + Time: 66.4, Weight: 0.000032, }, { - ID: 666, - Time: 66.5, + ID: 666, + Time: 66.5, Weight: 0.000031, }, { - ID: 667, - Time: 66.6, + ID: 667, + Time: 66.6, Weight: 0.000031, }, { - ID: 668, - Time: 66.7, + ID: 668, + Time: 66.7, Weight: 0.000031, }, { - ID: 669, - Time: 66.8, + ID: 669, + Time: 66.8, Weight: 0.00003, }, { - ID: 670, - Time: 66.9, + ID: 670, + Time: 66.9, Weight: 0.00003, }, { - ID: 671, - Time: 67, + ID: 671, + Time: 67, Weight: 0.00003, }, { - ID: 672, - Time: 67.1, + ID: 672, + Time: 67.1, Weight: 0.00003, }, { - ID: 673, - Time: 67.2, + ID: 673, + Time: 67.2, Weight: 0.000029, }, { - ID: 674, - Time: 67.3, + ID: 674, + Time: 67.3, Weight: 0.000029, }, { - ID: 675, - Time: 67.4, + ID: 675, + Time: 67.4, Weight: 0.000029, }, { - ID: 676, - Time: 67.5, + ID: 676, + Time: 67.5, Weight: 0.000029, }, { - ID: 677, - Time: 67.6, + ID: 677, + Time: 67.6, Weight: 0.000029, }, { - ID: 678, - Time: 67.7, + ID: 678, + Time: 67.7, Weight: 0.000028, }, { - ID: 679, - Time: 67.8, + ID: 679, + Time: 67.8, Weight: 0.000028, }, { - ID: 680, - Time: 67.9, + ID: 680, + Time: 67.9, Weight: 0.000028, }, { - ID: 681, - Time: 68, + ID: 681, + Time: 68, Weight: 0.000028, }, { - ID: 682, - Time: 68.1, + ID: 682, + Time: 68.1, Weight: 0.000027, }, { - ID: 683, - Time: 68.2, + ID: 683, + Time: 68.2, Weight: 0.000027, }, { - ID: 684, - Time: 68.3, + ID: 684, + Time: 68.3, Weight: 0.000027, }, { - ID: 685, - Time: 68.4, + ID: 685, + Time: 68.4, Weight: 0.000027, }, { - ID: 686, - Time: 68.5, + ID: 686, + Time: 68.5, Weight: 0.000026, }, { - ID: 687, - Time: 68.6, + ID: 687, + Time: 68.6, Weight: 0.000026, }, { - ID: 688, - Time: 68.7, + ID: 688, + Time: 68.7, Weight: 0.000026, }, { - ID: 689, - Time: 68.8, + ID: 689, + Time: 68.8, Weight: 0.000026, }, { - ID: 690, - Time: 68.9, + ID: 690, + Time: 68.9, Weight: 0.000026, }, { - ID: 691, - Time: 69, + ID: 691, + Time: 69, Weight: 0.000025, }, { - ID: 692, - Time: 69.1, + ID: 692, + Time: 69.1, Weight: 0.000025, }, { - ID: 693, - Time: 69.2, + ID: 693, + Time: 69.2, Weight: 0.000025, }, { - ID: 694, - Time: 69.3, + ID: 694, + Time: 69.3, Weight: 0.000025, }, { - ID: 695, - Time: 69.4, + ID: 695, + Time: 69.4, Weight: 0.000025, }, { - ID: 696, - Time: 69.5, + ID: 696, + Time: 69.5, Weight: 0.000024, }, { - ID: 697, - Time: 69.6, + ID: 697, + Time: 69.6, Weight: 0.000024, }, { - ID: 698, - Time: 69.7, + ID: 698, + Time: 69.7, Weight: 0.000024, }, { - ID: 699, - Time: 69.8, + ID: 699, + Time: 69.8, Weight: 0.000024, }, { - ID: 700, - Time: 69.9, + ID: 700, + Time: 69.9, Weight: 0.000024, }, { - ID: 701, - Time: 70, + ID: 701, + Time: 70, Weight: 0.000023, }, { - ID: 702, - Time: 70.1, + ID: 702, + Time: 70.1, Weight: 0.000023, }, { - ID: 703, - Time: 70.2, + ID: 703, + Time: 70.2, Weight: 0.000023, }, { - ID: 704, - Time: 70.3, + ID: 704, + Time: 70.3, Weight: 0.000023, }, { - ID: 705, - Time: 70.4, + ID: 705, + Time: 70.4, Weight: 0.000023, }, { - ID: 706, - Time: 70.5, + ID: 706, + Time: 70.5, Weight: 0.000022, }, { - ID: 707, - Time: 70.6, + ID: 707, + Time: 70.6, Weight: 0.000022, }, { - ID: 708, - Time: 70.7, + ID: 708, + Time: 70.7, Weight: 0.000022, }, { - ID: 709, - Time: 70.8, + ID: 709, + Time: 70.8, Weight: 0.000022, }, { - ID: 710, - Time: 70.9, + ID: 710, + Time: 70.9, Weight: 0.000022, }, { - ID: 711, - Time: 71, + ID: 711, + Time: 71, Weight: 0.000021, }, { - ID: 712, - Time: 71.1, + ID: 712, + Time: 71.1, Weight: 0.000021, }, { - ID: 713, - Time: 71.2, + ID: 713, + Time: 71.2, Weight: 0.000021, }, { - ID: 714, - Time: 71.3, + ID: 714, + Time: 71.3, Weight: 0.000021, }, { - ID: 715, - Time: 71.4, + ID: 715, + Time: 71.4, Weight: 0.000021, }, { - ID: 716, - Time: 71.5, + ID: 716, + Time: 71.5, Weight: 0.000021, }, { - ID: 717, - Time: 71.6, + ID: 717, + Time: 71.6, Weight: 0.00002, }, { - ID: 718, - Time: 71.7, + ID: 718, + Time: 71.7, Weight: 0.00002, }, { - ID: 719, - Time: 71.8, + ID: 719, + Time: 71.8, Weight: 0.00002, }, { - ID: 720, - Time: 71.9, + ID: 720, + Time: 71.9, Weight: 0.00002, }, { - ID: 721, - Time: 72, + ID: 721, + Time: 72, Weight: 0.00002, }, { - ID: 722, - Time: 72.1, + ID: 722, + Time: 72.1, Weight: 0.00002, }, { - ID: 723, - Time: 72.2, + ID: 723, + Time: 72.2, Weight: 0.000019, }, { - ID: 724, - Time: 72.3, + ID: 724, + Time: 72.3, Weight: 0.000019, }, { - ID: 725, - Time: 72.4, + ID: 725, + Time: 72.4, Weight: 0.000019, }, { - ID: 726, - Time: 72.5, + ID: 726, + Time: 72.5, Weight: 0.000019, }, { - ID: 727, - Time: 72.6, + ID: 727, + Time: 72.6, Weight: 0.000019, }, { - ID: 728, - Time: 72.7, + ID: 728, + Time: 72.7, Weight: 0.000019, }, { - ID: 729, - Time: 72.8, + ID: 729, + Time: 72.8, Weight: 0.000018, }, { - ID: 730, - Time: 72.9, + ID: 730, + Time: 72.9, Weight: 0.000018, }, { - ID: 731, - Time: 73, + ID: 731, + Time: 73, Weight: 0.000018, }, { - ID: 732, - Time: 73.1, + ID: 732, + Time: 73.1, Weight: 0.000018, }, { - ID: 733, - Time: 73.2, + ID: 733, + Time: 73.2, Weight: 0.000018, }, { - ID: 734, - Time: 73.3, + ID: 734, + Time: 73.3, Weight: 0.000018, }, { - ID: 735, - Time: 73.4, + ID: 735, + Time: 73.4, Weight: 0.000018, }, { - ID: 736, - Time: 73.5, + ID: 736, + Time: 73.5, Weight: 0.000017, }, { - ID: 737, - Time: 73.6, + ID: 737, + Time: 73.6, Weight: 0.000017, }, { - ID: 738, - Time: 73.7, + ID: 738, + Time: 73.7, Weight: 0.000017, }, { - ID: 739, - Time: 73.8, + ID: 739, + Time: 73.8, Weight: 0.000017, }, { - ID: 740, - Time: 73.9, + ID: 740, + Time: 73.9, Weight: 0.000017, }, { - ID: 741, - Time: 74, + ID: 741, + Time: 74, Weight: 0.000017, }, { - ID: 742, - Time: 74.1, + ID: 742, + Time: 74.1, Weight: 0.000017, }, { - ID: 743, - Time: 74.2, + ID: 743, + Time: 74.2, Weight: 0.000016, }, { - ID: 744, - Time: 74.3, + ID: 744, + Time: 74.3, Weight: 0.000016, }, { - ID: 745, - Time: 74.4, + ID: 745, + Time: 74.4, Weight: 0.000016, }, { - ID: 746, - Time: 74.5, + ID: 746, + Time: 74.5, Weight: 0.000016, }, { - ID: 747, - Time: 74.6, + ID: 747, + Time: 74.6, Weight: 0.000016, }, { - ID: 748, - Time: 74.7, + ID: 748, + Time: 74.7, Weight: 0.000016, }, { - ID: 749, - Time: 74.8, + ID: 749, + Time: 74.8, Weight: 0.000016, }, { - ID: 750, - Time: 74.9, + ID: 750, + Time: 74.9, Weight: 0.000016, }, { - ID: 751, - Time: 75, + ID: 751, + Time: 75, Weight: 0.000015, }, { - ID: 752, - Time: 75.1, + ID: 752, + Time: 75.1, Weight: 0.000015, }, { - ID: 753, - Time: 75.2, + ID: 753, + Time: 75.2, Weight: 0.000015, }, { - ID: 754, - Time: 75.3, + ID: 754, + Time: 75.3, Weight: 0.000015, }, { - ID: 755, - Time: 75.4, + ID: 755, + Time: 75.4, Weight: 0.000015, }, { - ID: 756, - Time: 75.5, + ID: 756, + Time: 75.5, Weight: 0.000015, }, { - ID: 757, - Time: 75.6, + ID: 757, + Time: 75.6, Weight: 0.000015, }, { - ID: 758, - Time: 75.7, + ID: 758, + Time: 75.7, Weight: 0.000015, }, { - ID: 759, - Time: 75.8, + ID: 759, + Time: 75.8, Weight: 0.000014, }, { - ID: 760, - Time: 75.9, + ID: 760, + Time: 75.9, Weight: 0.000014, }, { - ID: 761, - Time: 76, + ID: 761, + Time: 76, Weight: 0.000014, }, { - ID: 762, - Time: 76.1, + ID: 762, + Time: 76.1, Weight: 0.000014, }, { - ID: 763, - Time: 76.2, + ID: 763, + Time: 76.2, Weight: 0.000014, }, { - ID: 764, - Time: 76.3, + ID: 764, + Time: 76.3, Weight: 0.000014, }, { - ID: 765, - Time: 76.4, + ID: 765, + Time: 76.4, Weight: 0.000014, }, { - ID: 766, - Time: 76.5, + ID: 766, + Time: 76.5, Weight: 0.000014, }, { - ID: 767, - Time: 76.6, + ID: 767, + Time: 76.6, Weight: 0.000013, }, { - ID: 768, - Time: 76.7, + ID: 768, + Time: 76.7, Weight: 0.000013, }, { - ID: 769, - Time: 76.8, + ID: 769, + Time: 76.8, Weight: 0.000013, }, { - ID: 770, - Time: 76.9, + ID: 770, + Time: 76.9, Weight: 0.000013, }, { - ID: 771, - Time: 77, + ID: 771, + Time: 77, Weight: 0.000013, }, { - ID: 772, - Time: 77.1, + ID: 772, + Time: 77.1, Weight: 0.000013, }, { - ID: 773, - Time: 77.2, + ID: 773, + Time: 77.2, Weight: 0.000013, }, { - ID: 774, - Time: 77.3, + ID: 774, + Time: 77.3, Weight: 0.000013, }, { - ID: 775, - Time: 77.4, + ID: 775, + Time: 77.4, Weight: 0.000013, }, { - ID: 776, - Time: 77.5, + ID: 776, + Time: 77.5, Weight: 0.000012, }, { - ID: 777, - Time: 77.6, + ID: 777, + Time: 77.6, Weight: 0.000012, }, { - ID: 778, - Time: 77.7, + ID: 778, + Time: 77.7, Weight: 0.000012, }, { - ID: 779, - Time: 77.8, + ID: 779, + Time: 77.8, Weight: 0.000012, }, { - ID: 780, - Time: 77.9, + ID: 780, + Time: 77.9, Weight: 0.000012, }, { - ID: 781, - Time: 78, + ID: 781, + Time: 78, Weight: 0.000012, }, { - ID: 782, - Time: 78.1, + ID: 782, + Time: 78.1, Weight: 0.000012, }, { - ID: 783, - Time: 78.2, + ID: 783, + Time: 78.2, Weight: 0.000012, }, { - ID: 784, - Time: 78.3, + ID: 784, + Time: 78.3, Weight: 0.000012, }, { - ID: 785, - Time: 78.4, + ID: 785, + Time: 78.4, Weight: 0.000012, }, { - ID: 786, - Time: 78.5, + ID: 786, + Time: 78.5, Weight: 0.000011, }, { - ID: 787, - Time: 78.6, + ID: 787, + Time: 78.6, Weight: 0.000011, }, { - ID: 788, - Time: 78.7, + ID: 788, + Time: 78.7, Weight: 0.000011, }, { - ID: 789, - Time: 78.8, + ID: 789, + Time: 78.8, Weight: 0.000011, }, { - ID: 790, - Time: 78.9, + ID: 790, + Time: 78.9, Weight: 0.000011, }, { - ID: 791, - Time: 79, + ID: 791, + Time: 79, Weight: 0.000011, }, { - ID: 792, - Time: 79.1, + ID: 792, + Time: 79.1, Weight: 0.000011, }, { - ID: 793, - Time: 79.2, + ID: 793, + Time: 79.2, Weight: 0.000011, }, { - ID: 794, - Time: 79.3, + ID: 794, + Time: 79.3, Weight: 0.000011, }, { - ID: 795, - Time: 79.4, + ID: 795, + Time: 79.4, Weight: 0.000011, }, { - ID: 796, - Time: 79.5, + ID: 796, + Time: 79.5, Weight: 0.000011, }, { - ID: 797, - Time: 79.6, + ID: 797, + Time: 79.6, Weight: 0.00001, }, { - ID: 798, - Time: 79.7, + ID: 798, + Time: 79.7, Weight: 0.00001, }, { - ID: 799, - Time: 79.8, + ID: 799, + Time: 79.8, Weight: 0.00001, }, { - ID: 800, - Time: 79.9, + ID: 800, + Time: 79.9, Weight: 0.00001, }, { - ID: 801, - Time: 80, + ID: 801, + Time: 80, Weight: 0.00001, }, { - ID: 802, - Time: 80.1, + ID: 802, + Time: 80.1, Weight: 0.00001, }, { - ID: 803, - Time: 80.2, + ID: 803, + Time: 80.2, Weight: 0.00001, }, { - ID: 804, - Time: 80.3, + ID: 804, + Time: 80.3, Weight: 0.00001, }, { - ID: 805, - Time: 80.4, + ID: 805, + Time: 80.4, Weight: 0.00001, }, { - ID: 806, - Time: 80.5, + ID: 806, + Time: 80.5, Weight: 0.00001, }, { - ID: 807, - Time: 80.6, + ID: 807, + Time: 80.6, Weight: 0.00001, }, { - ID: 808, - Time: 80.7, + ID: 808, + Time: 80.7, Weight: 0.00001, }, { - ID: 809, - Time: 80.8, + ID: 809, + Time: 80.8, Weight: 0.000009, }, { - ID: 810, - Time: 80.9, + ID: 810, + Time: 80.9, Weight: 0.000009, }, { - ID: 811, - Time: 81, + ID: 811, + Time: 81, Weight: 0.000009, }, { - ID: 812, - Time: 81.1, + ID: 812, + Time: 81.1, Weight: 0.000009, }, { - ID: 813, - Time: 81.2, + ID: 813, + Time: 81.2, Weight: 0.000009, }, { - ID: 814, - Time: 81.3, + ID: 814, + Time: 81.3, Weight: 0.000009, }, { - ID: 815, - Time: 81.4, + ID: 815, + Time: 81.4, Weight: 0.000009, }, { - ID: 816, - Time: 81.5, + ID: 816, + Time: 81.5, Weight: 0.000009, }, { - ID: 817, - Time: 81.6, + ID: 817, + Time: 81.6, Weight: 0.000009, }, { - ID: 818, - Time: 81.7, + ID: 818, + Time: 81.7, Weight: 0.000009, }, { - ID: 819, - Time: 81.8, + ID: 819, + Time: 81.8, Weight: 0.000009, }, { - ID: 820, - Time: 81.9, + ID: 820, + Time: 81.9, Weight: 0.000009, }, { - ID: 821, - Time: 82, + ID: 821, + Time: 82, Weight: 0.000009, }, { - ID: 822, - Time: 82.1, + ID: 822, + Time: 82.1, Weight: 0.000009, }, { - ID: 823, - Time: 82.2, + ID: 823, + Time: 82.2, Weight: 0.000008, }, { - ID: 824, - Time: 82.3, + ID: 824, + Time: 82.3, Weight: 0.000008, }, { - ID: 825, - Time: 82.4, + ID: 825, + Time: 82.4, Weight: 0.000008, }, { - ID: 826, - Time: 82.5, + ID: 826, + Time: 82.5, Weight: 0.000008, }, { - ID: 827, - Time: 82.6, + ID: 827, + Time: 82.6, Weight: 0.000008, }, { - ID: 828, - Time: 82.7, + ID: 828, + Time: 82.7, Weight: 0.000008, }, { - ID: 829, - Time: 82.8, + ID: 829, + Time: 82.8, Weight: 0.000008, }, { - ID: 830, - Time: 82.9, + ID: 830, + Time: 82.9, Weight: 0.000008, }, { - ID: 831, - Time: 83, + ID: 831, + Time: 83, Weight: 0.000008, }, { - ID: 832, - Time: 83.1, + ID: 832, + Time: 83.1, Weight: 0.000008, }, { - ID: 833, - Time: 83.2, + ID: 833, + Time: 83.2, Weight: 0.000008, }, { - ID: 834, - Time: 83.3, + ID: 834, + Time: 83.3, Weight: 0.000008, }, { - ID: 835, - Time: 83.4, + ID: 835, + Time: 83.4, Weight: 0.000008, }, { - ID: 836, - Time: 83.5, + ID: 836, + Time: 83.5, Weight: 0.000008, }, { - ID: 837, - Time: 83.6, + ID: 837, + Time: 83.6, Weight: 0.000008, }, { - ID: 838, - Time: 83.7, + ID: 838, + Time: 83.7, Weight: 0.000007, }, { - ID: 839, - Time: 83.8, + ID: 839, + Time: 83.8, Weight: 0.000007, }, { - ID: 840, - Time: 83.9, + ID: 840, + Time: 83.9, Weight: 0.000007, }, { - ID: 841, - Time: 84, + ID: 841, + Time: 84, Weight: 0.000007, }, { - ID: 842, - Time: 84.1, + ID: 842, + Time: 84.1, Weight: 0.000007, }, { - ID: 843, - Time: 84.2, + ID: 843, + Time: 84.2, Weight: 0.000007, }, { - ID: 844, - Time: 84.3, + ID: 844, + Time: 84.3, Weight: 0.000007, }, { - ID: 845, - Time: 84.4, + ID: 845, + Time: 84.4, Weight: 0.000007, }, { - ID: 846, - Time: 84.5, + ID: 846, + Time: 84.5, Weight: 0.000007, }, { - ID: 847, - Time: 84.6, + ID: 847, + Time: 84.6, Weight: 0.000007, }, { - ID: 848, - Time: 84.7, + ID: 848, + Time: 84.7, Weight: 0.000007, }, { - ID: 849, - Time: 84.8, + ID: 849, + Time: 84.8, Weight: 0.000007, }, { - ID: 850, - Time: 84.9, + ID: 850, + Time: 84.9, Weight: 0.000007, }, { - ID: 851, - Time: 85, + ID: 851, + Time: 85, Weight: 0.000007, }, { - ID: 852, - Time: 85.1, + ID: 852, + Time: 85.1, Weight: 0.000007, }, { - ID: 853, - Time: 85.2, + ID: 853, + Time: 85.2, Weight: 0.000007, }, { - ID: 854, - Time: 85.3, + ID: 854, + Time: 85.3, Weight: 0.000007, }, { - ID: 855, - Time: 85.4, + ID: 855, + Time: 85.4, Weight: 0.000006, }, { - ID: 856, - Time: 85.5, + ID: 856, + Time: 85.5, Weight: 0.000006, }, { - ID: 857, - Time: 85.6, + ID: 857, + Time: 85.6, Weight: 0.000006, }, { - ID: 858, - Time: 85.7, + ID: 858, + Time: 85.7, Weight: 0.000006, }, { - ID: 859, - Time: 85.8, + ID: 859, + Time: 85.8, Weight: 0.000006, }, { - ID: 860, - Time: 85.9, + ID: 860, + Time: 85.9, Weight: 0.000006, }, { - ID: 861, - Time: 86, + ID: 861, + Time: 86, Weight: 0.000006, }, { - ID: 862, - Time: 86.1, + ID: 862, + Time: 86.1, Weight: 0.000006, }, { - ID: 863, - Time: 86.2, + ID: 863, + Time: 86.2, Weight: 0.000006, }, { - ID: 864, - Time: 86.3, + ID: 864, + Time: 86.3, Weight: 0.000006, }, { - ID: 865, - Time: 86.4, + ID: 865, + Time: 86.4, Weight: 0.000006, }, { - ID: 866, - Time: 86.5, + ID: 866, + Time: 86.5, Weight: 0.000006, }, { - ID: 867, - Time: 86.6, + ID: 867, + Time: 86.6, Weight: 0.000006, }, { - ID: 868, - Time: 86.7, + ID: 868, + Time: 86.7, Weight: 0.000006, }, { - ID: 869, - Time: 86.8, + ID: 869, + Time: 86.8, Weight: 0.000006, }, { - ID: 870, - Time: 86.9, + ID: 870, + Time: 86.9, Weight: 0.000006, }, { - ID: 871, - Time: 87, + ID: 871, + Time: 87, Weight: 0.000006, }, { - ID: 872, - Time: 87.1, + ID: 872, + Time: 87.1, Weight: 0.000006, }, { - ID: 873, - Time: 87.2, + ID: 873, + Time: 87.2, Weight: 0.000006, }, { - ID: 874, - Time: 87.3, + ID: 874, + Time: 87.3, Weight: 0.000006, }, { - ID: 875, - Time: 87.4, + ID: 875, + Time: 87.4, Weight: 0.000005, }, { - ID: 876, - Time: 87.5, + ID: 876, + Time: 87.5, Weight: 0.000005, }, { - ID: 877, - Time: 87.6, + ID: 877, + Time: 87.6, Weight: 0.000005, }, { - ID: 878, - Time: 87.7, + ID: 878, + Time: 87.7, Weight: 0.000005, }, { - ID: 879, - Time: 87.8, + ID: 879, + Time: 87.8, Weight: 0.000005, }, { - ID: 880, - Time: 87.9, + ID: 880, + Time: 87.9, Weight: 0.000005, }, { - ID: 881, - Time: 88, + ID: 881, + Time: 88, Weight: 0.000005, }, { - ID: 882, - Time: 88.1, + ID: 882, + Time: 88.1, Weight: 0.000005, }, { - ID: 883, - Time: 88.2, + ID: 883, + Time: 88.2, Weight: 0.000005, }, { - ID: 884, - Time: 88.3, + ID: 884, + Time: 88.3, Weight: 0.000005, }, { - ID: 885, - Time: 88.4, + ID: 885, + Time: 88.4, Weight: 0.000005, }, { - ID: 886, - Time: 88.5, + ID: 886, + Time: 88.5, Weight: 0.000005, }, { - ID: 887, - Time: 88.6, + ID: 887, + Time: 88.6, Weight: 0.000005, }, { - ID: 888, - Time: 88.7, + ID: 888, + Time: 88.7, Weight: 0.000005, }, { - ID: 889, - Time: 88.8, + ID: 889, + Time: 88.8, Weight: 0.000005, }, { - ID: 890, - Time: 88.9, + ID: 890, + Time: 88.9, Weight: 0.000005, }, { - ID: 891, - Time: 89, + ID: 891, + Time: 89, Weight: 0.000005, }, { - ID: 892, - Time: 89.1, + ID: 892, + Time: 89.1, Weight: 0.000005, }, { - ID: 893, - Time: 89.2, + ID: 893, + Time: 89.2, Weight: 0.000005, }, { - ID: 894, - Time: 89.3, + ID: 894, + Time: 89.3, Weight: 0.000005, }, { - ID: 895, - Time: 89.4, + ID: 895, + Time: 89.4, Weight: 0.000005, }, { - ID: 896, - Time: 89.5, + ID: 896, + Time: 89.5, Weight: 0.000005, }, { - ID: 897, - Time: 89.6, + ID: 897, + Time: 89.6, Weight: 0.000005, }, { - ID: 898, - Time: 89.7, + ID: 898, + Time: 89.7, Weight: 0.000005, }, { - ID: 899, - Time: 89.8, + ID: 899, + Time: 89.8, Weight: 0.000004, }, { - ID: 900, - Time: 89.9, + ID: 900, + Time: 89.9, Weight: 0.000004, }, { - ID: 901, - Time: 90, + ID: 901, + Time: 90, Weight: 0.000004, }, { - ID: 902, - Time: 90.1, + ID: 902, + Time: 90.1, Weight: 0.000004, }, { - ID: 903, - Time: 90.2, + ID: 903, + Time: 90.2, Weight: 0.000004, }, { - ID: 904, - Time: 90.3, + ID: 904, + Time: 90.3, Weight: 0.000004, }, { - ID: 905, - Time: 90.4, + ID: 905, + Time: 90.4, Weight: 0.000004, }, { - ID: 906, - Time: 90.5, + ID: 906, + Time: 90.5, Weight: 0.000004, }, { - ID: 907, - Time: 90.6, + ID: 907, + Time: 90.6, Weight: 0.000004, }, { - ID: 908, - Time: 90.7, + ID: 908, + Time: 90.7, Weight: 0.000004, }, { - ID: 909, - Time: 90.8, + ID: 909, + Time: 90.8, Weight: 0.000004, }, { - ID: 910, - Time: 90.9, + ID: 910, + Time: 90.9, Weight: 0.000004, }, { - ID: 911, - Time: 91, + ID: 911, + Time: 91, Weight: 0.000004, }, { - ID: 912, - Time: 91.1, + ID: 912, + Time: 91.1, Weight: 0.000004, }, { - ID: 913, - Time: 91.2, + ID: 913, + Time: 91.2, Weight: 0.000004, }, { - ID: 914, - Time: 91.3, + ID: 914, + Time: 91.3, Weight: 0.000004, }, { - ID: 915, - Time: 91.4, + ID: 915, + Time: 91.4, Weight: 0.000004, }, { - ID: 916, - Time: 91.5, + ID: 916, + Time: 91.5, Weight: 0.000004, }, { - ID: 917, - Time: 91.6, + ID: 917, + Time: 91.6, Weight: 0.000004, }, { - ID: 918, - Time: 91.7, + ID: 918, + Time: 91.7, Weight: 0.000004, }, { - ID: 919, - Time: 91.8, + ID: 919, + Time: 91.8, Weight: 0.000004, }, { - ID: 920, - Time: 91.9, + ID: 920, + Time: 91.9, Weight: 0.000004, }, { - ID: 921, - Time: 92, + ID: 921, + Time: 92, Weight: 0.000004, }, { - ID: 922, - Time: 92.1, + ID: 922, + Time: 92.1, Weight: 0.000004, }, { - ID: 923, - Time: 92.2, + ID: 923, + Time: 92.2, Weight: 0.000004, }, { - ID: 924, - Time: 92.3, + ID: 924, + Time: 92.3, Weight: 0.000004, }, { - ID: 925, - Time: 92.4, + ID: 925, + Time: 92.4, Weight: 0.000004, }, { - ID: 926, - Time: 92.5, + ID: 926, + Time: 92.5, Weight: 0.000004, }, { - ID: 927, - Time: 92.6, + ID: 927, + Time: 92.6, Weight: 0.000004, }, { - ID: 928, - Time: 92.7, + ID: 928, + Time: 92.7, Weight: 0.000004, }, { - ID: 929, - Time: 92.8, + ID: 929, + Time: 92.8, Weight: 0.000003, }, { - ID: 930, - Time: 92.9, + ID: 930, + Time: 92.9, Weight: 0.000003, }, { - ID: 931, - Time: 93, + ID: 931, + Time: 93, Weight: 0.000003, }, { - ID: 932, - Time: 93.1, + ID: 932, + Time: 93.1, Weight: 0.000003, }, { - ID: 933, - Time: 93.2, + ID: 933, + Time: 93.2, Weight: 0.000003, }, { - ID: 934, - Time: 93.3, + ID: 934, + Time: 93.3, Weight: 0.000003, }, { - ID: 935, - Time: 93.4, + ID: 935, + Time: 93.4, Weight: 0.000003, }, { - ID: 936, - Time: 93.5, + ID: 936, + Time: 93.5, Weight: 0.000003, }, { - ID: 937, - Time: 93.6, + ID: 937, + Time: 93.6, Weight: 0.000003, }, { - ID: 938, - Time: 93.7, + ID: 938, + Time: 93.7, Weight: 0.000003, }, { - ID: 939, - Time: 93.8, + ID: 939, + Time: 93.8, Weight: 0.000003, }, { - ID: 940, - Time: 93.9, + ID: 940, + Time: 93.9, Weight: 0.000003, }, { - ID: 941, - Time: 94, + ID: 941, + Time: 94, Weight: 0.000003, }, { - ID: 942, - Time: 94.1, + ID: 942, + Time: 94.1, Weight: 0.000003, }, { - ID: 943, - Time: 94.2, + ID: 943, + Time: 94.2, Weight: 0.000003, }, { - ID: 944, - Time: 94.3, + ID: 944, + Time: 94.3, Weight: 0.000003, }, { - ID: 945, - Time: 94.4, + ID: 945, + Time: 94.4, Weight: 0.000003, }, { - ID: 946, - Time: 94.5, + ID: 946, + Time: 94.5, Weight: 0.000003, }, { - ID: 947, - Time: 94.6, + ID: 947, + Time: 94.6, Weight: 0.000003, }, { - ID: 948, - Time: 94.7, + ID: 948, + Time: 94.7, Weight: 0.000003, }, { - ID: 949, - Time: 94.8, + ID: 949, + Time: 94.8, Weight: 0.000003, }, { - ID: 950, - Time: 94.9, + ID: 950, + Time: 94.9, Weight: 0.000003, }, { - ID: 951, - Time: 95, + ID: 951, + Time: 95, Weight: 0.000003, }, { - ID: 952, - Time: 95.1, + ID: 952, + Time: 95.1, Weight: 0.000003, }, { - ID: 953, - Time: 95.2, + ID: 953, + Time: 95.2, Weight: 0.000003, }, { - ID: 954, - Time: 95.3, + ID: 954, + Time: 95.3, Weight: 0.000003, }, { - ID: 955, - Time: 95.4, + ID: 955, + Time: 95.4, Weight: 0.000003, }, { - ID: 956, - Time: 95.5, + ID: 956, + Time: 95.5, Weight: 0.000003, }, { - ID: 957, - Time: 95.6, + ID: 957, + Time: 95.6, Weight: 0.000003, }, { - ID: 958, - Time: 95.7, + ID: 958, + Time: 95.7, Weight: 0.000003, }, { - ID: 959, - Time: 95.8, + ID: 959, + Time: 95.8, Weight: 0.000003, }, { - ID: 960, - Time: 95.9, + ID: 960, + Time: 95.9, Weight: 0.000003, }, { - ID: 961, - Time: 96, + ID: 961, + Time: 96, Weight: 0.000003, }, { - ID: 962, - Time: 96.1, + ID: 962, + Time: 96.1, Weight: 0.000003, }, { - ID: 963, - Time: 96.2, + ID: 963, + Time: 96.2, Weight: 0.000003, }, { - ID: 964, - Time: 96.3, + ID: 964, + Time: 96.3, Weight: 0.000003, }, { - ID: 965, - Time: 96.4, + ID: 965, + Time: 96.4, Weight: 0.000003, }, { - ID: 966, - Time: 96.5, + ID: 966, + Time: 96.5, Weight: 0.000003, }, { - ID: 967, - Time: 96.6, + ID: 967, + Time: 96.6, Weight: 0.000003, }, { - ID: 968, - Time: 96.7, + ID: 968, + Time: 96.7, Weight: 0.000003, }, { - ID: 969, - Time: 96.8, + ID: 969, + Time: 96.8, Weight: 0.000002, }, { - ID: 970, - Time: 96.9, + ID: 970, + Time: 96.9, Weight: 0.000002, }, { - ID: 971, - Time: 97, + ID: 971, + Time: 97, Weight: 0.000002, }, { - ID: 972, - Time: 97.1, + ID: 972, + Time: 97.1, Weight: 0.000002, }, { - ID: 973, - Time: 97.2, + ID: 973, + Time: 97.2, Weight: 0.000002, }, { - ID: 974, - Time: 97.3, + ID: 974, + Time: 97.3, Weight: 0.000002, }, { - ID: 975, - Time: 97.4, + ID: 975, + Time: 97.4, Weight: 0.000002, }, { - ID: 976, - Time: 97.5, + ID: 976, + Time: 97.5, Weight: 0.000002, }, { - ID: 977, - Time: 97.6, + ID: 977, + Time: 97.6, Weight: 0.000002, }, { - ID: 978, - Time: 97.7, + ID: 978, + Time: 97.7, Weight: 0.000002, }, { - ID: 979, - Time: 97.8, + ID: 979, + Time: 97.8, Weight: 0.000002, }, { - ID: 980, - Time: 97.9, + ID: 980, + Time: 97.9, Weight: 0.000002, }, { - ID: 981, - Time: 98, + ID: 981, + Time: 98, Weight: 0.000002, }, { - ID: 982, - Time: 98.1, + ID: 982, + Time: 98.1, Weight: 0.000002, }, { - ID: 983, - Time: 98.2, + ID: 983, + Time: 98.2, Weight: 0.000002, }, { - ID: 984, - Time: 98.3, + ID: 984, + Time: 98.3, Weight: 0.000002, }, { - ID: 985, - Time: 98.4, + ID: 985, + Time: 98.4, Weight: 0.000002, }, { - ID: 986, - Time: 98.5, + ID: 986, + Time: 98.5, Weight: 0.000002, }, { - ID: 987, - Time: 98.6, + ID: 987, + Time: 98.6, Weight: 0.000002, }, { - ID: 988, - Time: 98.7, + ID: 988, + Time: 98.7, Weight: 0.000002, }, { - ID: 989, - Time: 98.8, + ID: 989, + Time: 98.8, Weight: 0.000002, }, { - ID: 990, - Time: 98.9, + ID: 990, + Time: 98.9, Weight: 0.000002, }, { - ID: 991, - Time: 99, + ID: 991, + Time: 99, Weight: 0.000002, }, { - ID: 992, - Time: 99.1, + ID: 992, + Time: 99.1, Weight: 0.000002, }, { - ID: 993, - Time: 99.2, + ID: 993, + Time: 99.2, Weight: 0.000002, }, { - ID: 994, - Time: 99.3, + ID: 994, + Time: 99.3, Weight: 0.000002, }, { - ID: 995, - Time: 99.4, + ID: 995, + Time: 99.4, Weight: 0.000002, }, { - ID: 996, - Time: 99.5, + ID: 996, + Time: 99.5, Weight: 0.000002, }, { - ID: 997, - Time: 99.6, + ID: 997, + Time: 99.6, Weight: 0.000002, }, { - ID: 998, - Time: 99.7, + ID: 998, + Time: 99.7, Weight: 0.000002, }, { - ID: 999, - Time: 99.8, + ID: 999, + Time: 99.8, Weight: 0.000002, }, { - ID: 1000, - Time: 99.9, + ID: 1000, + Time: 99.9, Weight: 0.000002, }, { - ID: 1001, - Time: 100, + ID: 1001, + Time: 100, Weight: 0.00023, }, } @@ -5243,13 +5243,13 @@ func init() { TestSymbol = map[int64]*structs.TestSymbol{ 1: { - ID: 1, - Name: "xx", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 0}, + ID: 1, + Name: "xx", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, } @@ -5259,4 +5259,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go index a846c37..9e1fb21 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go @@ -4,223 +4,263 @@ package base import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" var ( - CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} - CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} - CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} - CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} - CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} - CashManiaFormation = []*structs.CashManiaFormation{} - CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} - CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} - CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} - CashManiaOthers = []*structs.CashManiaOthers{} - CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} - CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} - CashManiaReelBaseSpinRange = [][]int64{} - CashManiaReelBaseSpinReel = [][]int64{} - CashManiaReelBaseSpinWeight = [][]float64{} - CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} - CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} - CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} - CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} - FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} - FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} - FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} - FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} - FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} - FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} - FortuneDragonFormation = []*structs.FortuneDragonFormation{} - FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} - FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} - FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} - FortuneDragonOthers = []*structs.FortuneDragonOthers{} - FortuneDragonReelBaseSpinRange = [][]int64{} - FortuneDragonReelBaseSpinReel = [][]int64{} - FortuneDragonReelBaseSpinWeight = [][]float64{} - FortuneDragonReelFreeSpinRange = [][]int64{} - FortuneDragonReelFreeSpinReel = [][]int64{} - FortuneDragonReelFreeSpinWeight = [][]float64{} - FortuneDragonReelSureWinBaseSpinRange = [][]int64{} - FortuneDragonReelSureWinBaseSpinReel = [][]int64{} + CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} + CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} + CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} + CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} + CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} + CashManiaFormation = []*structs.CashManiaFormation{} + CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} + CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} + CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} + CashManiaOthers = []*structs.CashManiaOthers{} + CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} + CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} + CashManiaReelBaseSpinRange = [][]int64{} + CashManiaReelBaseSpinReel = [][]int64{} + CashManiaReelBaseSpinWeight = [][]float64{} + CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} + CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} + CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} + CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} + FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} + FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} + FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} + FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} + FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} + FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} + FortuneDragonFormation = []*structs.FortuneDragonFormation{} + FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} + FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} + FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} + FortuneDragonOthers = []*structs.FortuneDragonOthers{} + FortuneDragonReelBaseSpinRange = [][]int64{} + FortuneDragonReelBaseSpinReel = [][]int64{} + FortuneDragonReelBaseSpinWeight = [][]float64{} + FortuneDragonReelFreeSpinRange = [][]int64{} + FortuneDragonReelFreeSpinReel = [][]int64{} + FortuneDragonReelFreeSpinWeight = [][]float64{} + FortuneDragonReelSureWinBaseSpinRange = [][]int64{} + FortuneDragonReelSureWinBaseSpinReel = [][]int64{} FortuneDragonReelSureWinBaseSpinWeight = [][]float64{} - FortuneDragonReelSureWinFreeSpinRange = [][]int64{} - FortuneDragonReelSureWinFreeSpinReel = [][]int64{} + FortuneDragonReelSureWinFreeSpinRange = [][]int64{} + FortuneDragonReelSureWinFreeSpinReel = [][]int64{} FortuneDragonReelSureWinFreeSpinWeight = [][]float64{} - FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} - FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} - FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} - FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} - FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} - FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} - FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} - FortuneMouseFormation = []*structs.FortuneMouseFormation{} - FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} - FortuneMouseOthers = []*structs.FortuneMouseOthers{} - FortuneMouseReelBaseSpinRange = [][]int64{} - FortuneMouseReelBaseSpinReel = [][]int64{} - FortuneMouseReelBaseSpinWeight = [][]float64{} - FortuneMouseReelReSpinRange = [][]int64{} - FortuneMouseReelReSpinReel = [][]int64{} - FortuneMouseReelReSpinWeight = [][]float64{} - FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} - FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} - FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} - FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} - FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} - FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} - FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} - FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} - FortuneOxFormation = []*structs.FortuneOxFormation{} - FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} - FortuneOxOthers = []*structs.FortuneOxOthers{} - FortuneOxReelBaseSpinRange = [][]int64{} - FortuneOxReelBaseSpinReel = [][]int64{} - FortuneOxReelBaseSpinWeight = [][]float64{} - FortuneOxReelReSpinRange = [][]int64{} - FortuneOxReelReSpinReel = [][]int64{} - FortuneOxReelReSpinWeight = [][]float64{} - FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} - FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} - FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} - FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} - FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} - FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} - FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} - FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} - FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} - FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} - FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} - FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} - FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} - FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} - FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} - FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} - FortuneRabbitReelBaseSpinRange = [][]int64{} - FortuneRabbitReelBaseSpinReel = [][]int64{} - FortuneRabbitReelBaseSpinWeight = [][]float64{} - FortuneRabbitReelFreeSpinRange = [][]int64{} - FortuneRabbitReelFreeSpinReel = [][]int64{} - FortuneRabbitReelFreeSpinWeight = [][]float64{} - FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} - FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} - FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} - FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} - FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} - FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} - FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} - FortuneTigerFormation = []*structs.FortuneTigerFormation{} - FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} - FortuneTigerOthers = []*structs.FortuneTigerOthers{} - FortuneTigerReelBaseSpinRange = [][]int64{} - FortuneTigerReelBaseSpinReel = [][]int64{} - FortuneTigerReelBaseSpinWeight = [][]float64{} - FortuneTigerReelReSpinRange = [][]int64{} - FortuneTigerReelReSpinReel = [][]int64{} - FortuneTigerReelReSpinWeight = [][]float64{} - FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} - FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} - FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} - MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} - MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} - MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} - MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} - MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} - MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} - MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} - MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} - MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} - MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} - MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} - MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} - MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} - MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} - MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} - MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} - MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} - MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} - MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} - MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} - MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} - MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} - MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} - MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} - MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} - MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} - MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} - MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} - MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} - MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} - MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} - MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} - MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} - MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} - MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} - MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} - MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} - MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} - MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} - MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} - MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} - MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} - MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} - MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} - MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} - MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} - MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} - MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} - MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} - MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} - MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} - MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} - MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} - MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} - MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} - MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} - MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} - MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} - MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} - MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} - MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} - MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} - MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} - MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} - MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} - MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} - MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} - MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} - MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} - MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} - MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} - MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} - MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} - MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} - MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} - MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} - MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} - MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} - MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} - MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} - MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} - MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} - MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} - MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} - MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} - OptGroup = []*structs.OptGroup{} - PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} - PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} - SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} - SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} - TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} - TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} - TestBetBetLine = map[int64]*structs.TestBetBetLine{} - TestBetBetSize = map[int64]*structs.TestBetBetSize{} - TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} - TestFormation = []*structs.TestFormation{} - TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} - TestRandomWeight = []*structs.TestRandomWeight{} - TestReelBaseSpinRange = [][]int64{} - TestReelBaseSpinReel = [][]int64{} - TestReelBaseSpinWeight = [][]float64{} - TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} - TestSymbol = map[int64]*structs.TestSymbol{} -) + FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} + FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} + FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} + FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} + FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} + FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} + FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} + FortuneMouseFormation = []*structs.FortuneMouseFormation{} + FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} + FortuneMouseOthers = []*structs.FortuneMouseOthers{} + FortuneMouseReelBaseSpinRange = [][]int64{} + FortuneMouseReelBaseSpinReel = [][]int64{} + FortuneMouseReelBaseSpinWeight = [][]float64{} + FortuneMouseReelReSpinRange = [][]int64{} + FortuneMouseReelReSpinReel = [][]int64{} + FortuneMouseReelReSpinWeight = [][]float64{} + FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} + FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} + FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} + FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} + FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} + FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} + FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} + FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} + FortuneOxFormation = []*structs.FortuneOxFormation{} + FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} + FortuneOxOthers = []*structs.FortuneOxOthers{} + FortuneOxReelBaseSpinRange = [][]int64{} + FortuneOxReelBaseSpinReel = [][]int64{} + FortuneOxReelBaseSpinWeight = [][]float64{} + FortuneOxReelReSpinRange = [][]int64{} + FortuneOxReelReSpinReel = [][]int64{} + FortuneOxReelReSpinWeight = [][]float64{} + FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} + FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} + FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} + FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} + FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} + FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} + FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} + FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} + FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} + FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} + FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} + FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} + FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} + FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} + FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} + FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} + FortuneRabbitReelBaseSpinRange = [][]int64{} + FortuneRabbitReelBaseSpinReel = [][]int64{} + FortuneRabbitReelBaseSpinWeight = [][]float64{} + FortuneRabbitReelFreeSpinRange = [][]int64{} + FortuneRabbitReelFreeSpinReel = [][]int64{} + FortuneRabbitReelFreeSpinWeight = [][]float64{} + FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} + FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} + FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} + FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} + FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} + FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} + FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} + FortuneTigerFormation = []*structs.FortuneTigerFormation{} + FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} + FortuneTigerOthers = []*structs.FortuneTigerOthers{} + FortuneTigerReelBaseSpinRange = [][]int64{} + FortuneTigerReelBaseSpinReel = [][]int64{} + FortuneTigerReelBaseSpinWeight = [][]float64{} + FortuneTigerReelReSpinRange = [][]int64{} + FortuneTigerReelReSpinReel = [][]int64{} + FortuneTigerReelReSpinWeight = [][]float64{} + FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} + FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} + FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{} + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{} + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{} + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{} + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{} + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{} + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{} + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{} + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{} + GatesOfOlympusReelBaseSpin1Range = [][]int64{} + GatesOfOlympusReelBaseSpin1Reel = [][]int64{} + GatesOfOlympusReelBaseSpin1Weight = [][]float64{} + GatesOfOlympusReelBaseSpin2Range = [][]int64{} + GatesOfOlympusReelBaseSpin2Reel = [][]int64{} + GatesOfOlympusReelBaseSpin2Weight = [][]float64{} + GatesOfOlympusReelBaseSpin3Range = [][]int64{} + GatesOfOlympusReelBaseSpin3Reel = [][]int64{} + GatesOfOlympusReelBaseSpin3Weight = [][]float64{} + GatesOfOlympusReelBaseSpin7Range = [][]int64{} + GatesOfOlympusReelBaseSpin7Reel = [][]int64{} + GatesOfOlympusReelBaseSpin7Weight = [][]float64{} + GatesOfOlympusReelBaseSpin8Range = [][]int64{} + GatesOfOlympusReelBaseSpin8Reel = [][]int64{} + GatesOfOlympusReelBaseSpin8Weight = [][]float64{} + GatesOfOlympusReelBaseSpinRange = [][]int64{} + GatesOfOlympusReelBaseSpinReel = [][]int64{} + GatesOfOlympusReelBaseSpinWeight = [][]float64{} + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{} + GatesOfOlympusReelFreeSpin4Range = [][]int64{} + GatesOfOlympusReelFreeSpin4Reel = [][]int64{} + GatesOfOlympusReelFreeSpin4Weight = [][]float64{} + GatesOfOlympusReelFreeSpin5Range = [][]int64{} + GatesOfOlympusReelFreeSpin5Reel = [][]int64{} + GatesOfOlympusReelFreeSpin5Weight = [][]float64{} + GatesOfOlympusReelFreeSpinRange = [][]int64{} + GatesOfOlympusReelFreeSpinReel = [][]int64{} + GatesOfOlympusReelFreeSpinWeight = [][]float64{} + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{} + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{} + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{} + MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} + MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} + MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} + MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} + MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} + MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} + MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} + MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} + MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} + MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} + MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} + MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} + MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} + MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} + MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} + MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} + MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} + MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} + MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} + MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} + MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} + MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} + MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} + MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} + MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} + MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} + MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} + MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} + MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} + MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} + MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} + MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} + MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} + MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} + MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} + MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} + MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} + MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} + MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} + MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} + MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} + MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} + MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} + MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} + MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} + MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} + MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} + MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} + MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} + MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} + MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} + MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} + MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} + MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} + MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} + MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} + MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} + MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} + MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} + MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} + MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} + MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} + MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} + MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} + MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} + MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} + MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} + MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} + MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} + MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} + MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} + MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} + MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} + MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} + MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} + MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} + MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} + MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} + MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} + MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} + MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} + MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} + MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} + MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} + MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} + OptGroup = []*structs.OptGroup{} + PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} + PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} + SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} + SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} + TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} + TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} + TestBetBetLine = map[int64]*structs.TestBetBetLine{} + TestBetBetSize = map[int64]*structs.TestBetBetSize{} + TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} + TestFormation = []*structs.TestFormation{} + TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} + TestRandomWeight = []*structs.TestRandomWeight{} + TestReelBaseSpinRange = [][]int64{} + TestReelBaseSpinReel = [][]int64{} + TestReelBaseSpinWeight = [][]float64{} + TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} + TestSymbol = map[int64]*structs.TestSymbol{} +) \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go index 4862c11..eaa44d3 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go @@ -179,6 +179,46 @@ func StoragesLoading(data map[string]string) { Load(data, "Base.FortuneTiger/SuperStack.Weight", &base.FortuneTigerSuperStackWeight) Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio) Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol) + Load(data, "Base.GatesOfOlympus/Bet.BetChangeList", &base.GatesOfOlympusBetBetChangeList) + Load(data, "Base.GatesOfOlympus/Bet.BetLevel", &base.GatesOfOlympusBetBetLevel) + Load(data, "Base.GatesOfOlympus/Bet.BetLine", &base.GatesOfOlympusBetBetLine) + Load(data, "Base.GatesOfOlympus/Bet.BetSize", &base.GatesOfOlympusBetBetSize) + Load(data, "Base.GatesOfOlympus/Bet.FirstBet", &base.GatesOfOlympusBetFirstBet) + Load(data, "Base.GatesOfOlympus/Formation.Default", &base.GatesOfOlympusFormation) + Load(data, "Base.GatesOfOlympus/Map.RTPMode", &base.GatesOfOlympusMapRTPMode) + Load(data, "Base.GatesOfOlympus/Multiplier.Default", &base.GatesOfOlympusMultiplier) + Load(data, "Base.GatesOfOlympus/Multiplier.Default/ID", &base.GatesOfOlympusMultiplierKeyID) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Range", &base.GatesOfOlympusReelBaseSpin1Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Reel", &base.GatesOfOlympusReelBaseSpin1Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Weight", &base.GatesOfOlympusReelBaseSpin1Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Range", &base.GatesOfOlympusReelBaseSpin2Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Reel", &base.GatesOfOlympusReelBaseSpin2Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Weight", &base.GatesOfOlympusReelBaseSpin2Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Range", &base.GatesOfOlympusReelBaseSpin3Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Reel", &base.GatesOfOlympusReelBaseSpin3Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Weight", &base.GatesOfOlympusReelBaseSpin3Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Range", &base.GatesOfOlympusReelBaseSpin7Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Reel", &base.GatesOfOlympusReelBaseSpin7Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Weight", &base.GatesOfOlympusReelBaseSpin7Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Range", &base.GatesOfOlympusReelBaseSpin8Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Reel", &base.GatesOfOlympusReelBaseSpin8Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Weight", &base.GatesOfOlympusReelBaseSpin8Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Range", &base.GatesOfOlympusReelBaseSpinRange) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Reel", &base.GatesOfOlympusReelBaseSpinReel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Weight", &base.GatesOfOlympusReelBaseSpinWeight) + Load(data, "Base.GatesOfOlympus/ReelChoose.Default", &base.GatesOfOlympusReelChoose) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Range", &base.GatesOfOlympusReelFreeSpin4Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Reel", &base.GatesOfOlympusReelFreeSpin4Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Weight", &base.GatesOfOlympusReelFreeSpin4Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Range", &base.GatesOfOlympusReelFreeSpin5Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Reel", &base.GatesOfOlympusReelFreeSpin5Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Weight", &base.GatesOfOlympusReelFreeSpin5Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Range", &base.GatesOfOlympusReelFreeSpinRange) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Reel", &base.GatesOfOlympusReelFreeSpinReel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Weight", &base.GatesOfOlympusReelFreeSpinWeight) + Load(data, "Base.GatesOfOlympus/Scatter.Default", &base.GatesOfOlympusScatter) + Load(data, "Base.GatesOfOlympus/Symbol.BetRatio", &base.GatesOfOlympusSymbolBetRatio) + Load(data, "Base.GatesOfOlympus/Symbol.Default", &base.GatesOfOlympusSymbol) Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA) Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA) Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA) @@ -401,6 +441,46 @@ func StoragesMapping() { Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight) Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio) Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol) + Set("Base", "GatesOfOlympus/Bet", "BetChangeList", base.GatesOfOlympusBetBetChangeList) + Set("Base", "GatesOfOlympus/Bet", "BetLevel", base.GatesOfOlympusBetBetLevel) + Set("Base", "GatesOfOlympus/Bet", "BetLine", base.GatesOfOlympusBetBetLine) + Set("Base", "GatesOfOlympus/Bet", "BetSize", base.GatesOfOlympusBetBetSize) + Set("Base", "GatesOfOlympus/Bet", "FirstBet", base.GatesOfOlympusBetFirstBet) + Set("Base", "GatesOfOlympus/Formation", "Default", base.GatesOfOlympusFormation) + Set("Base", "GatesOfOlympus/Map", "RTPMode", base.GatesOfOlympusMapRTPMode) + Set("Base", "GatesOfOlympus/Multiplier", "Default", base.GatesOfOlympusMultiplier) + Set("Base", "GatesOfOlympus/Multiplier", "Default/ID", base.GatesOfOlympusMultiplierKeyID) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Range", base.GatesOfOlympusReelBaseSpin1Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Reel", base.GatesOfOlympusReelBaseSpin1Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Weight", base.GatesOfOlympusReelBaseSpin1Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Range", base.GatesOfOlympusReelBaseSpin2Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Reel", base.GatesOfOlympusReelBaseSpin2Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Weight", base.GatesOfOlympusReelBaseSpin2Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Range", base.GatesOfOlympusReelBaseSpin3Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Reel", base.GatesOfOlympusReelBaseSpin3Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Weight", base.GatesOfOlympusReelBaseSpin3Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Range", base.GatesOfOlympusReelBaseSpin7Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Reel", base.GatesOfOlympusReelBaseSpin7Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Weight", base.GatesOfOlympusReelBaseSpin7Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Range", base.GatesOfOlympusReelBaseSpin8Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Reel", base.GatesOfOlympusReelBaseSpin8Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Weight", base.GatesOfOlympusReelBaseSpin8Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Range", base.GatesOfOlympusReelBaseSpinRange) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Reel", base.GatesOfOlympusReelBaseSpinReel) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Weight", base.GatesOfOlympusReelBaseSpinWeight) + Set("Base", "GatesOfOlympus/ReelChoose", "Default", base.GatesOfOlympusReelChoose) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Range", base.GatesOfOlympusReelFreeSpin4Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Reel", base.GatesOfOlympusReelFreeSpin4Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Weight", base.GatesOfOlympusReelFreeSpin4Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Range", base.GatesOfOlympusReelFreeSpin5Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Reel", base.GatesOfOlympusReelFreeSpin5Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Weight", base.GatesOfOlympusReelFreeSpin5Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Range", base.GatesOfOlympusReelFreeSpinRange) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Reel", base.GatesOfOlympusReelFreeSpinReel) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Weight", base.GatesOfOlympusReelFreeSpinWeight) + Set("Base", "GatesOfOlympus/Scatter", "Default", base.GatesOfOlympusScatter) + Set("Base", "GatesOfOlympus/Symbol", "BetRatio", base.GatesOfOlympusSymbolBetRatio) + Set("Base", "GatesOfOlympus/Symbol", "Default", base.GatesOfOlympusSymbol) Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA) Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA) Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA) @@ -540,6 +620,12 @@ func LinksMapping() { Link("FortuneTiger/ReelBaseSpin", "Weight/1", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/3", "FortuneTiger/ReelBaseSpin", "Weight") + Link("GatesOfOlympus/MatrixSameForm5X6TypeA", "Default", "Matrix/SameForm5X6TypeA", "Default") + Link("GatesOfOlympus/MatrixSameForm5X6TypeB", "Default", "Matrix/SameForm5X6TypeB", "Default") + Link("GatesOfOlympus/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/1", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/2", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/3", "GatesOfOlympus/ReelBaseSpin1", "Weight") Link("Test/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default") Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight") @@ -636,3 +722,4 @@ func Load(dataMap map[string]string, name string, v interface{}) { panic(err) } } + diff --git a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go index a2d3e57..501a0e7 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go @@ -172,6 +172,19 @@ type ( FreeSpinCount int64 MaxWin int64 } + // GatesOfOlympusMultiplier comment + GatesOfOlympusMultiplier struct { + Multiple int64 + ID int64 + Weights []int64 + } + // GatesOfOlympusReelChoose comment + GatesOfOlympusReelChoose struct { + ID int64 + IsFreeSpin bool + NodeType string + Weights []int64 + } // JackpotPrize comment JackpotPrize struct { PrizeType int64 @@ -521,6 +534,42 @@ type ( // FortuneTigerSymbolBetRatio comment FortuneTigerSymbolBetRatio = SymbolBetRatio + // GatesOfOlympusBetBetChangeList comment + GatesOfOlympusBetBetChangeList = BetChangeList + + // GatesOfOlympusBetBetLevel comment + GatesOfOlympusBetBetLevel = BetLevel + + // GatesOfOlympusBetBetLine comment + GatesOfOlympusBetBetLine = BetLine + + // GatesOfOlympusBetBetSize comment + GatesOfOlympusBetBetSize = BetSize + + // GatesOfOlympusBetFirstBet comment + GatesOfOlympusBetFirstBet = FirstBet + + // GatesOfOlympusFormation comment + GatesOfOlympusFormation = Formation + + // GatesOfOlympusMapRTPMode comment + GatesOfOlympusMapRTPMode = MapRTPMode + + // GatesOfOlympusMapRTPModeTypeWeight comment + GatesOfOlympusMapRTPModeTypeWeight = MapRTPModeTypeWeight + + // GatesOfOlympusMultiplierKeyID comment + GatesOfOlympusMultiplierKeyID = GatesOfOlympusMultiplier + + // GatesOfOlympusScatter comment + GatesOfOlympusScatter = Scatter + + // GatesOfOlympusSymbol comment + GatesOfOlympusSymbol = Symbol + + // GatesOfOlympusSymbolBetRatio comment + GatesOfOlympusSymbolBetRatio = SymbolBetRatio + // MatrixFeaturesForm15X1TypeA comment MatrixFeaturesForm15X1TypeA = Matrix diff --git a/gamesrv/slotspkg/internal/generic/key/theme.go b/gamesrv/slotspkg/internal/generic/key/theme.go index 8eefc7a..53c9f09 100644 --- a/gamesrv/slotspkg/internal/generic/key/theme.go +++ b/gamesrv/slotspkg/internal/generic/key/theme.go @@ -1,13 +1,14 @@ package key const ( - FortuneTiger = "FortuneTiger" - FortuneDragon = "FortuneDragon" - FortuneRabbit = "FortuneRabbit" - FortuneOx = "FortuneOx" - FortuneMouse = "FortuneMouse" - CashMania = "CashMania" - Test = "Test" + FortuneTiger = "FortuneTiger" + FortuneDragon = "FortuneDragon" + FortuneRabbit = "FortuneRabbit" + FortuneOx = "FortuneOx" + FortuneMouse = "FortuneMouse" + CashMania = "CashMania" + GatesOfOlympus = "GatesOfOlympus" + Test = "Test" ) const ( GameId_Min uint = iota @@ -17,28 +18,31 @@ const ( GameId_OX GameId_Mouse GameId_Cash_Mania + GameId_GatesOfOlympus GameId_Max GameId_Test = 999 ) var GameMap = map[uint]string{ - GameId_Tiger: FortuneTiger, - GameId_Dragon: FortuneDragon, - GameId_Rabbit: FortuneRabbit, - GameId_OX: FortuneOx, - GameId_Mouse: FortuneMouse, - GameId_Cash_Mania: CashMania, - GameId_Test: Test, + GameId_Tiger: FortuneTiger, + GameId_Dragon: FortuneDragon, + GameId_Rabbit: FortuneRabbit, + GameId_OX: FortuneOx, + GameId_Mouse: FortuneMouse, + GameId_Cash_Mania: CashMania, + GameId_GatesOfOlympus: GatesOfOlympus, + GameId_Test: Test, } var GameMapTheme = map[string]uint{ - FortuneTiger: GameId_Tiger, - FortuneDragon: GameId_Dragon, - FortuneRabbit: GameId_Rabbit, - FortuneOx: GameId_OX, - FortuneMouse: GameId_Mouse, - CashMania: GameId_Cash_Mania, - Test: GameId_Test, + FortuneTiger: GameId_Tiger, + FortuneDragon: GameId_Dragon, + FortuneRabbit: GameId_Rabbit, + FortuneOx: GameId_OX, + FortuneMouse: GameId_Mouse, + CashMania: GameId_Cash_Mania, + GatesOfOlympus: GameId_GatesOfOlympus, + Test: GameId_Test, } var GameKeyMap = map[int64]uint{ 0: GameId_Min, @@ -47,5 +51,7 @@ var GameKeyMap = map[int64]uint{ 310: GameId_Rabbit, 311: GameId_OX, 312: GameId_Mouse, + 313: GameId_Cash_Mania, + 314: GameId_GatesOfOlympus, 999: GameId_Max, } diff --git a/gamesrv/slotspkg/internal/module/shared/types.go b/gamesrv/slotspkg/internal/module/shared/types.go index c275ce3..f8669c6 100644 --- a/gamesrv/slotspkg/internal/module/shared/types.go +++ b/gamesrv/slotspkg/internal/module/shared/types.go @@ -58,6 +58,18 @@ type GameEndDto struct { ActualWin int64 `json:"actualWin"` } +type CustomEliminate struct { + LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + // Special type SpinLock struct { //tigerSpecial @@ -81,4 +93,13 @@ type SpinLock struct { Multiple int64 `json:"multiple,omitempty"` //倍乘倍数 Irv [][]float64 `json:"irv,omitempty"` Frv [][]float64 `json:"frv,omitempty"` + + //GatesOfOlympus + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` } diff --git a/gamesrv/slotspkg/slots/desc/machine_desc.go b/gamesrv/slotspkg/slots/desc/machine_desc.go index 1ab0b43..0ef0437 100644 --- a/gamesrv/slotspkg/slots/desc/machine_desc.go +++ b/gamesrv/slotspkg/slots/desc/machine_desc.go @@ -122,6 +122,18 @@ func (n *MachineDesc) BetChangeList() []float64 { } return lists } +func (n *MachineDesc) GetBetIndexByVal(val float64) []int64 { + betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetChangeList")) + } + for _, list := range betChangeListRows { + if list.BetChangeList == val { + return []int64{list.BetSizeIndex, list.BetLevelIndex} + } + } + return nil +} func (n *MachineDesc) GetVector(choice int64, minRatio, maxRatio float64, isForceWin bool) (int64, []int64) { if vectorIndex := config.GetInt64("slots.vectorIndex"); vectorIndex > 0 { rows := n.DefaultSheet("Vector").([]*structs.Vector) diff --git a/gamesrv/slotspkg/slots/formation/formation.go b/gamesrv/slotspkg/slots/formation/formation.go index 627732c..3d96c18 100644 --- a/gamesrv/slotspkg/slots/formation/formation.go +++ b/gamesrv/slotspkg/slots/formation/formation.go @@ -13,6 +13,8 @@ type Formation struct { NodeType string FormationDesc *desc.FormationDesc Symbols []int64 + SymbolsAbove []int64 + SymbolsBelow []int64 RandPositions []int64 CheatSymbols []int64 DisplaySymbols []int64 @@ -72,6 +74,8 @@ func NewFormation(n *desc.NodeDesc, seqID int64) (*Formation, error) { NodeType: n.NodeType, FormationDesc: formationDesc, Symbols: nil, + SymbolsAbove: nil, + SymbolsBelow: nil, RandPositions: nil, CheatSymbols: nil, DisplaySymbols: nil, @@ -96,12 +100,16 @@ func (f *Formation) Rand(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx+reelDesc.Range-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbols(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(randx.RandWeight(r, reelDesc.Weights)) @@ -111,11 +119,15 @@ func (f *Formation) ResetRandSymbols(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(r.Intn(len(reelDesc.Weights))) @@ -125,6 +137,8 @@ func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } diff --git a/gamesrv/slotspkg/slots/intf/formation.go b/gamesrv/slotspkg/slots/intf/formation.go index 7c0ee73..8175668 100644 --- a/gamesrv/slotspkg/slots/intf/formation.go +++ b/gamesrv/slotspkg/slots/intf/formation.go @@ -16,6 +16,8 @@ type Formation interface { SetInitFormattedSymbols(symbols [][]int64) Formation GetSymbols() []int64 + GetSymbolsAbove() []int64 + GetSymbolsBelow() []int64 SetSymbols(symbols []int64) Formation GetReelFormattedSymbols() [][]int64 GetMatrixFormattedSymbols() [][]int64 @@ -41,6 +43,8 @@ type Formation interface { GetMatrixFormattedFinalSymbols() [][]int64 SetFormattedFinalSymbols(symbols [][]int64) Formation + GetMatrixFormattedBySymbols(symbols []int64) [][]int64 + GetLinkPositions() []*shared.LinkPositions SetLinkPositions(linkPositions []*shared.LinkPositions) Formation diff --git a/gamesrv/slotspkg/slots/intf/spinner.go b/gamesrv/slotspkg/slots/intf/spinner.go index 649d598..c0b91f1 100644 --- a/gamesrv/slotspkg/slots/intf/spinner.go +++ b/gamesrv/slotspkg/slots/intf/spinner.go @@ -44,6 +44,7 @@ type Spinner interface { BetLines() []int64 BaseBets() []int64 BetChangeList() []float64 + GetBetIndexByVal(val float64) []int64 Choice() int64 Stay() bool diff --git a/gamesrv/slotspkg/slots/machine/formation.go b/gamesrv/slotspkg/slots/machine/formation.go index b5ef770..772fe91 100644 --- a/gamesrv/slotspkg/slots/machine/formation.go +++ b/gamesrv/slotspkg/slots/machine/formation.go @@ -65,6 +65,20 @@ func (f *Formation) GetSymbols() []int64 { return symbols } +// GetSymbolsAbove gets origin SymbolsAbove +func (f *Formation) GetSymbolsAbove() []int64 { + symbolsAbove := make([]int64, len(f.OriginFormation.SymbolsAbove)) + copy(symbolsAbove, f.OriginFormation.SymbolsAbove) + return symbolsAbove +} + +// GetSymbolsBelow gets origin SymbolsBelow +func (f *Formation) GetSymbolsBelow() []int64 { + symbolsBelow := make([]int64, len(f.OriginFormation.SymbolsBelow)) + copy(symbolsBelow, f.OriginFormation.SymbolsBelow) + return symbolsBelow +} + // SetSymbols sets origin symbols func (f *Formation) SetSymbols(symbols []int64) intf.Formation { f.OriginFormation.Symbols = symbols @@ -183,6 +197,12 @@ func (f *Formation) GetMatrixFormattedFinalSymbols() [][]int64 { f.OriginFormation.MatrixForm) } +// GetMatrixFormattedBySymbols gets symbols and places them into specific form +func (f *Formation) GetMatrixFormattedBySymbols(symbols []int64) [][]int64 { + return formation.FormatSymbols(symbols, + f.OriginFormation.MatrixForm) +} + // SetFormattedFinalSymbols sets formed final symbols func (f *Formation) SetFormattedFinalSymbols(symbols [][]int64) intf.Formation { f.Formation.FinalSymbols = formation.DeformatSymbols(symbols) diff --git a/gamesrv/slotspkg/slots/machine/machine_master_misc.go b/gamesrv/slotspkg/slots/machine/machine_master_misc.go index 2580bb4..94b7532 100644 --- a/gamesrv/slotspkg/slots/machine/machine_master_misc.go +++ b/gamesrv/slotspkg/slots/machine/machine_master_misc.go @@ -45,6 +45,9 @@ func (m *Machine) BaseBets() []int64 { func (m *Machine) BetChangeList() []float64 { return m.MachineDesc.BetChangeList() } +func (m *Machine) GetBetIndexByVal(val float64) []int64 { + return m.MachineDesc.GetBetIndexByVal(val) +} func (m *Machine) Choice() int64 { if m.UserData().ForceChoice > 0 { return m.UserData().ForceChoice diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go new file mode 100644 index 0000000..2f930d3 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go @@ -0,0 +1,36 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginChooseWheel struct { + generic.PluginBase +} + +func (p *PluginChooseWheel) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginChooseWheel) OnStepBegin(m intf.Master) { + isFreeSpin := m.Next().GetType() == FreeSpin + typ := m.Choice() + + nodeName := Descx(m).RandWheel(isFreeSpin, typ) + if !isFreeSpin { + if typ == RoundTypeMoreScatter { + nodeName = "MoreScatter" + nodeName + m.SetRatio(key.MachineRatioMoreCoinMoreBet, 1.25) + } else if typ == RoundTypeBuyFreeSpin { + m.SetRatio(key.MachineRatioMoreCoinSameBet, 100) + } + } + m.Set(key.MachineFormationSeqsDesc, nodeName) + + // 设置日志中的RoundType + if m.Next().GetType() == BaseSpin { + m.Set(key.MachineRoundType, typ) + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go new file mode 100644 index 0000000..152bf8f --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go @@ -0,0 +1,30 @@ +package gatesofolympus + +const ( + BaseSpin = "BaseSpin" + FreeSpin = "FreeSpin" +) + +const ( + RoundTypeBaseSpin = iota + RoundTypeMoreScatter // 25% more cost + RoundTypeBuyFreeSpin // 10000% more cost +) + +const ( + MultiplierBaseSpin = iota + MultiplierFreeSpin + MultiplierNoWin +) + +const ( + SymbolMultiplier = int64(12) +) + +type CustomFortune struct { + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn"` //剩余freespin + FreeNumMax int64 `json:"fnm"` //总次数 + FreeNumTrigger int64 `json:"fnt"` //新增freespin + ScatterWin int64 `json:"sw,omitempty"` +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go new file mode 100644 index 0000000..4b5be57 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go @@ -0,0 +1,84 @@ +package gatesofolympus + +import ( + "encoding/json" + "github.com/tomas-qstarrs/boost/randx" + "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/errors" + "mongo.games.com/game/gamesrv/slotspkg/slots/desc" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" +) + +type descx struct { + *randx.Randx + *desc.NodeDesc +} + +func Descx(m intf.Master) *descx { + return &descx{ + Randx: m.Randx(), + NodeDesc: m.Desc(), + } +} + +func (n descx) RandWheel(isFreeSpin bool, typ int64) string { + sheet := n.DefaultSheet("ReelChoose") + rows, ok := sheet.([]*structs.GatesOfOlympusReelChoose) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "ReelChoose")) + } + + var weights = make(map[int]int64, 0) + for idx, row := range rows { + if row.IsFreeSpin == isFreeSpin { + weights[idx] = row.Weights[int(typ)] + } + } + + idx := randx.RandWeightMap(n.Randx, weights) + return rows[idx].NodeType +} + +func (n descx) RandMultiplier(typ int64) int64 { + sheet := n.DefaultSheet("Multiplier") + rows, ok := sheet.([]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + var weights = make([]int64, 0, len(rows)) + for _, row := range rows { + weights = append(weights, row.Weights[typ]) + } + + idx := randx.RandWeight(n.Randx, weights) + return rows[idx].ID +} + +func (n descx) GetMultiBySymbol(symbol int64) int64 { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + row, ok := rows[symbol] + if !ok { + return 0 + } + + return row.Multiple +} +func (n descx) GetMultiStr() string { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + var multiples = make(map[int64]int64) + for _, v := range rows { + multiples[v.ID] = v.Multiple + } + multiplesByte, _ := json.Marshal(multiples) + return string(multiplesByte) +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go new file mode 100644 index 0000000..3440693 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go @@ -0,0 +1,239 @@ +package gatesofolympus + +import ( + "fmt" + "github.com/mohae/deepcopy" + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/internal/module/shared" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginEliminate struct { + generic.PluginBase +} + +type CustomEliminate struct { + LinkPositions []*shared.LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +type CustomMulti struct { + Multi int64 + MultiStr string + MultiStrVal string +} + +type CustomPay struct { + Pay float64 +} + +func (p *PluginEliminate) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginEliminate) Customs() []interface{} { + return []interface{}{ + &CustomEliminate{}, + &CustomMulti{}, + &CustomPay{}, + &CustomFortune{}, + } +} + +func (p *PluginEliminate) OnInit(m intf.Master) { + if len(m.RootCustoms(&CustomMulti{})) == 0 { + m.AddRootFeature(&CustomMulti{}) + } +} + +func (p *PluginEliminate) OnEnterNode(m intf.Master) { + if m.Cursor().GetType() == key.BaseSpin { + m.RootCustom(&CustomMulti{}).(*CustomMulti).Multi = 0 + } +} + +func (p *PluginEliminate) BeforeSpin(m intf.Master) { + m.AddCursorFeature(&CustomPay{}).SetLifetime(1) +} + +func (p *PluginEliminate) AfterSpin(m intf.Master) { + cursorFormation := m.CursorFormation() + formattedSymbols := cursorFormation.GetReelFormattedDisplaySymbols() + + //f := getCustomFortune(m) + //if f.FreeSpinNum == 13 { + // formattedSymbols[0][0] = 1 + // formattedSymbols[0][1] = 1 + // formattedSymbols[0][2] = 1 + //} + + appendFormattedSymbols := deepcopy.Copy(formattedSymbols).([][]int64) + randPositions := cursorFormation.GetRandPositions() + + // 清空基础赢钱 + m.CursorFormation().SetWin(0) + + // 获取custom + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + + // 根据赔付计算multi type + linkPositions, _, linePays := m.TryLinkMatrixSymbols(1, formattedSymbols) + + var multiType int64 + if mathx.Sum(linePays) == 0 { + multiType = MultiplierNoWin + } else if m.Cursor().GetType() == key.BaseSpin { + multiType = MultiplierBaseSpin + } else { + multiType = MultiplierFreeSpin + } + + // 替换Formation元素 + for colIdx, symbols := range formattedSymbols { + for rowIdx, symbol := range symbols { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + formattedSymbols[int64(colIdx)][5-int64(len(symbols))+int64(rowIdx)] = multiSymbol + } + } + } + + // 存储 Formation元素 + cursorFormation.SetFormattedDisplaySymbols(formattedSymbols) + defer cursorFormation.SetFormattedFinalSymbols(formattedSymbols) + + // 有消除 + for mathx.Sum(linePays) > 0 { + // 计算连线赢钱 + lineNum := len(linePays) + winCoins := make([]float64, lineNum) + for lineIdx, pay := range linePays { + winCoins[lineIdx] = float64(m.Cursor().GetSingleBet()) * float64(pay) + } + + // 标记消除的元素 + for _, link := range linkPositions { + for _, pos := range link.Positions { + row, col := cursorFormation.PositionToCoords(pos) + formattedSymbols[col][row] = -1 + } + } + // 删除消除的元素 + for colIndex := range formattedSymbols { + for rowIndex := 0; rowIndex < len(formattedSymbols[colIndex]); rowIndex++ { + if formattedSymbols[colIndex][rowIndex] == -1 { + formattedSymbols[colIndex] = append(formattedSymbols[colIndex][:rowIndex], formattedSymbols[colIndex][rowIndex+1:]...) + rowIndex-- + } + } + } + + var symbolsAbove []int64 + // 获取新得元素 + for colIdx, symbols := range formattedSymbols { + // 获取后续(向前)元素 + appendFormattedSymbols[colIdx] = cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols)), int64(5-len(symbols))) + + symbolsAbove = append(symbolsAbove, cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols))-1, 1)...) + + for rowIdx, symbol := range appendFormattedSymbols[colIdx] { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + appendFormattedSymbols[colIdx][rowIdx] = multiSymbol + } + } + + // 拼接剩余元素和后续(向前)元素 + formattedSymbols[colIdx] = deepcopy.Copy(appendFormattedSymbols[colIdx]).([]int64) + formattedSymbols[colIdx] = append(formattedSymbols[colIdx], symbols...) + + // randPosition 向前移动 + randPositions[colIdx] -= int64(len(appendFormattedSymbols[colIdx])) + } + + // 添加后续feature,这里是消除 + m.AddCursorFeature(&CustomEliminate{ + LinkPositions: linkPositions, + AppendSymbols: appendFormattedSymbols, + FormattedSymbols: formattedSymbols, + LinePays: linePays, + WinCoins: winCoins, + MultiStr: Descx(m).GetMultiStr(), + SymbolsAbove: symbolsAbove, + SymbolsBelow: m.CursorFormation().GetSymbolsBelow(), + }).SetLifetime(1) + + // 累加pay + customPay.Pay += mathx.Sum(linePays) + + // 连线 + linkPositions, _, linePays = m.TryLinkMatrixSymbols(1, formattedSymbols) + } + + // 增加multi + var multiSum int64 + maxColCount := 0 + + // 找到最长的列数 + for _, row := range formattedSymbols { + if len(row) > maxColCount { + maxColCount = len(row) + } + } + + flatIndex := 0 // 当前符号在一维数组中的索引 + + customMulti.MultiStr = "" + customMulti.MultiStrVal = "" + + // 遍历列优先的索引 + for col := 0; col < maxColCount; col++ { + for row := 0; row < len(formattedSymbols); row++ { + rowSymbols := formattedSymbols[row] // 当前行的符号 + if col < len(rowSymbols) { // 确保当前列存在 + symbol := rowSymbols[col] + multi := Descx(m).GetMultiBySymbol(symbol) + multiSum += multi + + // 打印 Symbol 和其一维索引 + //fmt.Printf("Symbol: %s, Position in one-dimensional array: %d\n", symbol, flatIndex) + if multi > 0 { + if len(customMulti.MultiStr) > 0 { + customMulti.MultiStr += ";" + customMulti.MultiStrVal += "," + } + customMulti.MultiStr += fmt.Sprintf("%v~%v~%v", 12, flatIndex, multi) + customMulti.MultiStrVal += fmt.Sprintf("%v", multi) + } + flatIndex++ // 索引递增 + } + } + } + + if customPay.Pay > 0 { + if multiSum == 0 { + win := int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + m.CursorFeature(&CustomPay{}).SetWin(win) + } else { + customMulti.Multi += multiSum + var win int64 + if customMulti.Multi == 0 { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + } else { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet()) * float64(customMulti.Multi)) + } + m.CursorFeature(&CustomPay{}).SetWin(win) + } + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go new file mode 100644 index 0000000..b2ae211 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go @@ -0,0 +1,106 @@ +package gatesofolympus + +import ( + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginFreeSpin struct { + generic.PluginScatter +} + +func (p *PluginFreeSpin) Theme() string { + return key.GatesOfOlympus +} + +// 获取特性数据 +func getCustomFortune(m intf.Master) *CustomFortune { + customFortune := new(CustomFortune) + if len(m.CursorCustoms(customFortune)) == 0 { + m.AddCursorFeature(customFortune) + } + return m.CursorCustom(customFortune).(*CustomFortune) +} + +// AfterSpin implements generic.PluginBase.AfterSpin +func (p *PluginFreeSpin) AfterSpin(m intf.Master) { + switch m.Cursor().GetType() { + case key.BaseSpin: + p.AfterBaseSpin(m) + case key.FreeSpin: + p.AfterFreeSpin(m) + } +} + +// AfterBaseSpin is called after base spin +func (p *PluginFreeSpin) AfterBaseSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, false) + if addTimes > 0 { + //m.AddNodeOnCursor(key.FreeSpin, addTimes) + customFortune := getCustomFortune(m) + customFortune.FreeStatus = 1 + customFortune.FreeNumMax += addTimes + customFortune.FreeNumTrigger = addTimes + customFortune.FreeSpinNum = addTimes + customFortune.ScatterWin = win + m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, addTimes).GetID(), customFortune).SetLifetime(addTimes) + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// AfterFreeSpin is called after free spin +func (p *PluginFreeSpin) AfterFreeSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, true) + customFortune := getCustomFortune(m) + if addTimes > 0 { + customFortune.FreeStatus = 2 + customFortune.FreeNumTrigger = addTimes + customFortune.FreeNumMax += addTimes + customFortune.FreeSpinNum += addTimes + customFortune.ScatterWin = win + m.AddProgress(addTimes) + m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: addTimes}).SetLifetime(1) + } else { + customFortune.FreeStatus = 0 + customFortune.FreeNumTrigger = 0 + if customFortune.FreeSpinNum > 0 { + if customFortune.FreeSpinNum == 1 { + customFortune.FreeStatus = 3 + } + customFortune.FreeSpinNum-- + } + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// GetScatterInfo gets add free spin times & pay rate +func (p *PluginFreeSpin) GetScatterInfo(m intf.Master, inFreeSpin bool) (int64, int64) { + var scatterCount int64 + symbols := m.CursorFormation().GetFinalSymbols() + scatterSymbols := p.Scatters(m) + for _, scatterSymbol := range scatterSymbols { + scatterCount += int64(mathx.Count(scatterSymbol, symbols)) + } + + if scatterCount == 0 { + return 0, 0 + } + + freeSpinCount := generic.Descx(m).FreeSpin(inFreeSpin, scatterCount) + + payRate := generic.Descx(m).ScatterPayRate(inFreeSpin, scatterCount) + + win := m.Bet() * payRate + + if m.Choice() == RoundTypeMoreScatter { + win = int64(mathx.SafeDiv(win, 1.25)) + } + + return freeSpinCount, win +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go new file mode 100644 index 0000000..6f13eb6 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go @@ -0,0 +1,10 @@ +package gatesofolympus + +var Plugins = []interface{}{ + &PluginChooseWheel{}, + &PluginEliminate{}, + &PluginFreeSpin{}, + &PluginSpecial{}, +} + +var SimulatorPlugins = []interface{}{} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go new file mode 100644 index 0000000..4e6b074 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go @@ -0,0 +1,77 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginSpecial struct { + generic.PluginBase +} +type Special struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` //消除的次数 一次为一个结果 + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn,omitempty"` //剩余freespin + FreeNumMax int64 `json:"fnm,omitempty"` //总次数 + FreeNumTrigger int64 `json:"fnt,omitempty"` //新增freespin + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +func (p *PluginSpecial) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginSpecial) Customs() []interface{} { + return []interface{}{ + &Special{}, + } +} +func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special { + customSpecial := new(Special) + if len(m.CursorCustoms(customSpecial)) == 0 { + m.AddCursorFeature(customSpecial).SetLifetime(0) + } + return m.CursorCustom(customSpecial).(*Special) +} +func (p *PluginSpecial) AfterSpin(m intf.Master) { + //cf := m.CursorFeatures(&CustomEliminate{}) + ces := m.CursorCustoms(&CustomEliminate{}) + sp := p.getCustomSpecial(m) + if len(ces) > 0 { + for _, i2 := range ces { + ce := i2.(*CustomEliminate) + wc := make([]float64, len(ce.WinCoins)) + for j := 0; j < len(ce.WinCoins); j++ { + wc[j] = ce.WinCoins[j] / 10000 + } + sp.CustomEliminates = append(sp.CustomEliminates, CustomEliminate{ + LinkPositions: ce.LinkPositions, + AppendSymbols: ce.AppendSymbols, + FormattedSymbols: ce.FormattedSymbols, + LinePays: ce.LinePays, + WinCoins: wc, + MultiStr: ce.MultiStr, + }) + } + } + customFortune := getCustomFortune(m) + sp.FreeStatus = customFortune.FreeStatus + sp.FreeSpinNum = customFortune.FreeSpinNum + sp.FreeNumMax = customFortune.FreeNumMax + sp.FreeNumTrigger = customFortune.FreeNumTrigger + + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + sp.Multi = customMulti.Multi + sp.MultiStr = customMulti.MultiStr + sp.MultiStrVal = customMulti.MultiStrVal + sp.Pay = customPay.Pay + sp.SymbolsAbove = m.CursorFormation().GetSymbolsAbove() + sp.SymbolsBelow = m.CursorFormation().GetSymbolsBelow() +} diff --git a/gamesrv/slotspkg/slots/plugin/init.go b/gamesrv/slotspkg/slots/plugin/init.go index 0d18fc2..2f5dc28 100644 --- a/gamesrv/slotspkg/slots/plugin/init.go +++ b/gamesrv/slotspkg/slots/plugin/init.go @@ -8,6 +8,7 @@ import ( "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortuneox" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunerabbit" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunetiger" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/gatesofolympus" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/test" "mongo.games.com/game/gamesrv/slotspkg/slots/reg" ) @@ -20,6 +21,7 @@ func Init() { reg.Register(fortunedragon.Plugins...) reg.Register(fortunemouse.Plugins...) reg.Register(cashmania.Plugins...) + reg.Register(gatesofolympus.Plugins...) reg.Register(test.Plugins...) if global.Mock { @@ -28,6 +30,8 @@ func Init() { reg.Register(fortunerabbit.SimulatorPlugins...) reg.Register(fortunedragon.SimulatorPlugins...) reg.Register(cashmania.SimulatorPlugins...) + reg.Register(gatesofolympus.SimulatorPlugins...) + reg.Register(test.SimulatorPlugins...) } } @@ -39,11 +43,15 @@ func Close() { reg.Deregister(fortunedragon.Plugins...) reg.Deregister(fortunemouse.Plugins...) reg.Deregister(cashmania.Plugins...) + reg.Deregister(gatesofolympus.Plugins...) + reg.Deregister(test.Plugins...) if global.Mock { reg.Deregister(fortuneox.SimulatorPlugins...) reg.Deregister(fortunetiger.SimulatorPlugins...) reg.Deregister(fortunerabbit.SimulatorPlugins...) reg.Deregister(fortunedragon.SimulatorPlugins...) reg.Deregister(cashmania.SimulatorPlugins...) + reg.Deregister(gatesofolympus.SimulatorPlugins...) + reg.Deregister(test.SimulatorPlugins...) } } diff --git a/gamesrv/thirteen/scene.go b/gamesrv/thirteen/scene.go index 1d658f5..55d90e0 100644 --- a/gamesrv/thirteen/scene.go +++ b/gamesrv/thirteen/scene.go @@ -1257,7 +1257,7 @@ func (this *SceneEx) CountBilled() { for _, v := range this.players { if v != nil && v.IsGameing() { if v.totalScore > 0 { - v.gainCoin = int64(float64(v.totalScore) * float64(totalLoseScore) / float64(totalWinScore)) + v.gainCoin = int64(float64(v.totalScore*totalLoseScore) / float64(totalWinScore)) } else if v.totalScore < 0 { v.gainCoin = v.totalScore } @@ -1270,7 +1270,7 @@ func (this *SceneEx) CountBilled() { if v.totalScore > 0 { v.gainCoin = v.totalScore } else if v.totalScore < 0 { - v.gainCoin = int64(float64(v.totalScore) * float64(totalLoseScore) / float64(totalWinScore)) + v.gainCoin = int64(float64(v.totalScore*totalWinScore) / float64(totalLoseScore)) } } } diff --git a/model/baginfo.go b/model/baginfo.go index a44cf26..5df4ec5 100644 --- a/model/baginfo.go +++ b/model/baginfo.go @@ -55,7 +55,7 @@ func UpBagItem(args *BagInfo) error { ret := false err := rpcCli.CallWithTimeout("BagSvc.UpgradeBag", args, &ret, time.Second*30) if err != nil { - return fmt.Errorf("UpgradeBag err:%v SnId:%v BagId:%v", err, args.SnId, args.BagId) + return fmt.Errorf("UpgradeBag err:%v SnId:%v BagId:%v Ts:%v", err, args.SnId, args.BagId, args.Ts) } return nil diff --git a/model/config.go b/model/config.go index 2080dbf..50540a2 100644 --- a/model/config.go +++ b/model/config.go @@ -26,6 +26,7 @@ const ( OpCollect = 6 OpNian = 7 OpConsume = 8 // 累计消耗活动 + OpPushCoin = 9 // 推金币活动 ) const ( @@ -175,6 +176,8 @@ type AllConfig struct { *webapi.RedPacketConfig // 累计消耗活动配置 *webapi.ConsumeConfig + // 推金币活动配置 + *webapi.PushCoinConfig } type GlobalConfig struct { diff --git a/model/itemdatalog.go b/model/itemdatalog.go index 16415d4..eca24ca 100644 --- a/model/itemdatalog.go +++ b/model/itemdatalog.go @@ -2,16 +2,19 @@ package model import ( "errors" - "github.com/globalsign/mgo/bson" - "mongo.games.com/game/protocol/server" - "mongo.games.com/goserver/core/logger" + "sync/atomic" "time" + + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/protocol/server" ) var ( ItemLogDBName = "log" ItemLogCollName = "log_itemlog" - ClawDollItemIds = []int32{40003, 40004, 80001, 80002} + ItemSeq = int64(0) ) type ItemLog struct { @@ -24,6 +27,7 @@ type ItemLog struct { Count int64 //个数 CreateTs int64 //记录时间 Ts int64 // 纳秒时间戳 + Seq int64 // 序号 Remark string //备注 TypeId int32 // 变化类型 GameId int64 // 游戏id,游戏中获得时有值 @@ -55,7 +59,7 @@ type ItemParam struct { Cost []*Item // 消耗的道具 LogId string // 撤销的id,兑换失败 RoomConfigId int32 // 房间配置id - Offline int32 // 离线记录 + Offline int32 // 离线记录 1是 0否 } func NewItemLogEx(param ItemParam) *ItemLog { @@ -69,6 +73,7 @@ func NewItemLogEx(param ItemParam) *ItemLog { itemLog.Count = param.Count itemLog.CreateTs = now.Unix() itemLog.Ts = now.UnixNano() + itemLog.Seq = atomic.AddInt64(&ItemSeq, 1) itemLog.Remark = param.Remark itemLog.TypeId = param.TypeId itemLog.GameId = param.GameId diff --git a/model/player.go b/model/player.go index 6266021..5d84259 100644 --- a/model/player.go +++ b/model/player.go @@ -557,6 +557,15 @@ type RedPacketData struct { JN int32 // 参与次数 } +type PushCoinData struct { + Shake int32 // 震动次数 + Refresh int64 // 刷新次数 + Power int64 // 能量值 + Exchange map[int32]int32 // 兑换次数 兑换id:兑换次数 + Dram int // 抽奖次数 + Items map[int32]int64 // 道具 +} + type WelfareData struct { ReliefFundTimes int32 //救济金领取次数 Sign7 *NewSignData //七日签到 @@ -575,6 +584,7 @@ type WelfareData struct { PermitExchange map[int32][]int64 // 赛季通行证兑换次数, 多次的兑换时间 NianData *NianData //年兽活动数据 RedPacket map[int64]*RedPacketData // 红包活动 活动id:领取次数 + PushCoin *PushCoinData // 推币机活动 } func NewWelfareData() *WelfareData { @@ -689,19 +699,21 @@ type WebPlayerDataParam struct { } type NianData struct { - ActivityStartTime int64 //活动开始时间 - ActivityEndTime int64 //活动结束时间 - BossHp int64 //Boss当前血量 - BuffStatus bool //Buff领取状态 - BuffCount int64 //Buff剩余生效次数 - SignAwardTime int64 //签到奖励领取时间 - BossDieCount int32 //BOSS死亡次数 - LittleHurt int32 //小爆竹次数 - BigHurt int32 //大爆竹次数 - OtherAwardNum map[int32]int32 //奖励掉落数量 - AttackMaxHp int64 //单次攻击最大血量 - AttackSumHp int64 //攻击总伤害 - GiftShop map[int32]int32 //购买每日礼包记录 + ActivityStartTime int64 //活动开始时间 + ActivityEndTime int64 //活动结束时间 + BossHp int64 //Boss当前血量 + BuffStatus bool //Buff领取状态 + BuffCount int64 //Buff剩余生效次数 + SignAwardTime int64 //签到奖励领取时间 + SignOtherAwardCount int32 //签到额外奖励掉落数量 + SignOtherAwardProp int32 //签到额外奖励掉落概率 + BossDieCount int32 //BOSS死亡次数 + LittleHurt int32 //小爆竹次数 + BigHurt int32 //大爆竹次数 + OtherAwardNum map[int32]int32 //奖励掉落数量 + AttackMaxHp int64 //单次攻击最大血量 + AttackSumHp int64 //攻击总伤害 + GiftShop map[int32]int32 //购买每日礼包记录 } func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { diff --git a/model/redpacket.go b/model/redpacket.go index 2b577f4..1eeaa81 100644 --- a/model/redpacket.go +++ b/model/redpacket.go @@ -11,9 +11,9 @@ import ( //go:generate mongoctl -model-dir=. -model-names=RedPacket -dao-dir=../dao/ type RedPacket struct { ID primitive.ObjectID `bson:"_id" gen:"autoFill"` - Cid int64 // 红包活动id - Use map[int64]int64 // 已发红包 红包奖励数量:已发个数 - Ts int64 // 更新时间戳 + Cid int64 `bson:"cid"` // 红包活动id + Use map[int64]int64 `bson:"use"` // 已发红包 红包奖励数量:已发个数 + Ts int64 `bson:"ts"` // 更新时间戳 } func (r *RedPacket) DatabaseName() string { @@ -75,3 +75,50 @@ type BackRedPacket struct { ItemNum int64 // 道具数量 Ts int64 // 时间戳 } + +//go:generate mongoctl -model-dir=. -model-names=RedPacketHistory -dao-dir=../dao/ +type RedPacketHistory struct { + Platform string `bson:"-"` // 平台 + ID primitive.ObjectID `bson:"_id" gen:"autoFill"` + Cid int64 `bson:"cid"` // 红包活动id + Snid int32 `bson:"snid"` // 玩家id + Ts int64 `bson:"ts"` // 时间戳 + ItemId int32 `bson:"itemid"` // 道具id + ItemNum int64 `bson:"itemnum"` // 道具数量 +} + +func (r *RedPacketHistory) DatabaseName() string { + return "log" +} + +func (r *RedPacketHistory) CollectionName() string { + return "log_redpackethistory" +} + +type GetRedPacketHistoryReq struct { + Plt string + Snid int32 + Cid int64 +} + +func GetRedPacketHistory(plt string, snid int32, cid int64) (res []*RedPacketHistory, err error) { + if rpcCli == nil { + logger.Logger.Error("model.GetRedPacketHistory rpcCli == nil") + return nil, errors.New("rpc client is nil") + } + + req := &GetRedPacketHistoryReq{ + Plt: plt, + Snid: snid, + Cid: cid, + } + res = make([]*RedPacketHistory, 0) + + err = rpcCli.CallWithTimeout("RedPacketService.GetHistory", req, &res, time.Second*30) + if err != nil { + logger.Logger.Errorf("GetRedPacketHistory error: %v", err) + return nil, err + } + + return res, nil +} diff --git a/mq/keyconf.go b/mq/keyconf.go index 9c526bf..5e13415 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -46,8 +46,9 @@ const ( DBInvite = "db_invite" DBAPILog = "db_apilog" DBGiveLog = "db_givelog" - DBLotteryCode = "db_lotterycode" // 玩家抽奖码 - DBLotteryLog = "db_lotterylog" // 中奖记录 + DBLotteryCode = "db_lotterycode" // 玩家抽奖码 + DBLotteryLog = "db_lotterylog" // 中奖记录 + DBRedPacket = "db_redpackethistory" // 红包记录 ) // ranksrv 消息 diff --git a/protocol/activity/actsign.pb.go b/protocol/activity/actsign.pb.go deleted file mode 100644 index d2658b4..0000000 --- a/protocol/activity/actsign.pb.go +++ /dev/null @@ -1,515 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.1-devel -// protoc v3.19.4 -// source: protocol/activity/actsign.proto - -package activity - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -//操作结果 -type OpResultCode_ActSign int32 - -const ( - OpResultCode_ActSign_OPRC_Activity_Sign_Sucess OpResultCode_ActSign = 0 //成功 - OpResultCode_ActSign_OPRC_Activity_Sign_Error OpResultCode_ActSign = 1 //失败 - OpResultCode_ActSign_OPRC_Activity_Sign_Close OpResultCode_ActSign = 1001 //活动未开启 - OpResultCode_ActSign_OPRC_Activity_Sign_PayNum_Low OpResultCode_ActSign = 1002 //未达到最低充值金额 - OpResultCode_ActSign_OPRC_Activity_Sign_Config_Vip_Error OpResultCode_ActSign = 1003 //vip不匹配 - OpResultCode_ActSign_OPRC_Activity_Sign_Config_Day_Error OpResultCode_ActSign = 1004 //签到天数不匹配 - OpResultCode_ActSign_OPRC_Activity_Sign_Repeat OpResultCode_ActSign = 1005 //重复签到 -) - -// Enum value maps for OpResultCode_ActSign. -var ( - OpResultCode_ActSign_name = map[int32]string{ - 0: "OPRC_Activity_Sign_Sucess", - 1: "OPRC_Activity_Sign_Error", - 1001: "OPRC_Activity_Sign_Close", - 1002: "OPRC_Activity_Sign_PayNum_Low", - 1003: "OPRC_Activity_Sign_Config_Vip_Error", - 1004: "OPRC_Activity_Sign_Config_Day_Error", - 1005: "OPRC_Activity_Sign_Repeat", - } - OpResultCode_ActSign_value = map[string]int32{ - "OPRC_Activity_Sign_Sucess": 0, - "OPRC_Activity_Sign_Error": 1, - "OPRC_Activity_Sign_Close": 1001, - "OPRC_Activity_Sign_PayNum_Low": 1002, - "OPRC_Activity_Sign_Config_Vip_Error": 1003, - "OPRC_Activity_Sign_Config_Day_Error": 1004, - "OPRC_Activity_Sign_Repeat": 1005, - } -) - -func (x OpResultCode_ActSign) Enum() *OpResultCode_ActSign { - p := new(OpResultCode_ActSign) - *p = x - return p -} - -func (x OpResultCode_ActSign) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (OpResultCode_ActSign) Descriptor() protoreflect.EnumDescriptor { - return file_protocol_activity_actsign_proto_enumTypes[0].Descriptor() -} - -func (OpResultCode_ActSign) Type() protoreflect.EnumType { - return &file_protocol_activity_actsign_proto_enumTypes[0] -} - -func (x OpResultCode_ActSign) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use OpResultCode_ActSign.Descriptor instead. -func (OpResultCode_ActSign) EnumDescriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{0} -} - -// 签到 -type ActSignPacketID int32 - -const ( - ActSignPacketID_PACKET_SignZero ActSignPacketID = 0 // 弃用消息号 - ActSignPacketID_PACKET_CSSign ActSignPacketID = 2662 // 签到 - ActSignPacketID_PACKET_SCSign ActSignPacketID = 2663 - ActSignPacketID_PACKET_CSSignData ActSignPacketID = 2664 // 签到数据 - ActSignPacketID_PACKET_SCSignData ActSignPacketID = 2665 -) - -// Enum value maps for ActSignPacketID. -var ( - ActSignPacketID_name = map[int32]string{ - 0: "PACKET_SignZero", - 2662: "PACKET_CSSign", - 2663: "PACKET_SCSign", - 2664: "PACKET_CSSignData", - 2665: "PACKET_SCSignData", - } - ActSignPacketID_value = map[string]int32{ - "PACKET_SignZero": 0, - "PACKET_CSSign": 2662, - "PACKET_SCSign": 2663, - "PACKET_CSSignData": 2664, - "PACKET_SCSignData": 2665, - } -) - -func (x ActSignPacketID) Enum() *ActSignPacketID { - p := new(ActSignPacketID) - *p = x - return p -} - -func (x ActSignPacketID) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ActSignPacketID) Descriptor() protoreflect.EnumDescriptor { - return file_protocol_activity_actsign_proto_enumTypes[1].Descriptor() -} - -func (ActSignPacketID) Type() protoreflect.EnumType { - return &file_protocol_activity_actsign_proto_enumTypes[1] -} - -func (x ActSignPacketID) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ActSignPacketID.Descriptor instead. -func (ActSignPacketID) EnumDescriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{1} -} - -//PACKET_CSSign -type CSSign struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SignIndex int32 `protobuf:"varint,1,opt,name=SignIndex,proto3" json:"SignIndex,omitempty"` - SignType int32 `protobuf:"varint,2,opt,name=SignType,proto3" json:"SignType,omitempty"` //0.普通签到 1.双倍签到 -} - -func (x *CSSign) Reset() { - *x = CSSign{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_actsign_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CSSign) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CSSign) ProtoMessage() {} - -func (x *CSSign) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_actsign_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 CSSign.ProtoReflect.Descriptor instead. -func (*CSSign) Descriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{0} -} - -func (x *CSSign) GetSignIndex() int32 { - if x != nil { - return x.SignIndex - } - return 0 -} - -func (x *CSSign) GetSignType() int32 { - if x != nil { - return x.SignType - } - return 0 -} - -//PACKET_SCSign -type SCSign struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SignIndex int32 `protobuf:"varint,1,opt,name=SignIndex,proto3" json:"SignIndex,omitempty"` - SignType int32 `protobuf:"varint,2,opt,name=SignType,proto3" json:"SignType,omitempty"` //0.普通签到 1.双倍签到 - OpRetCode OpResultCode_ActSign `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_ActSign" json:"OpRetCode,omitempty"` -} - -func (x *SCSign) Reset() { - *x = SCSign{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_actsign_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SCSign) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SCSign) ProtoMessage() {} - -func (x *SCSign) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_actsign_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 SCSign.ProtoReflect.Descriptor instead. -func (*SCSign) Descriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{1} -} - -func (x *SCSign) GetSignIndex() int32 { - if x != nil { - return x.SignIndex - } - return 0 -} - -func (x *SCSign) GetSignType() int32 { - if x != nil { - return x.SignType - } - return 0 -} - -func (x *SCSign) GetOpRetCode() OpResultCode_ActSign { - if x != nil { - return x.OpRetCode - } - return OpResultCode_ActSign_OPRC_Activity_Sign_Sucess -} - -//PACKET_CSSignData -type CSSignData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CSSignData) Reset() { - *x = CSSignData{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_actsign_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CSSignData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CSSignData) ProtoMessage() {} - -func (x *CSSignData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_actsign_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 CSSignData.ProtoReflect.Descriptor instead. -func (*CSSignData) Descriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{2} -} - -//PACKET_SCSignData -type SCSignData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SignCount int32 `protobuf:"varint,1,opt,name=SignCount,proto3" json:"SignCount,omitempty"` - TodaySign int32 `protobuf:"varint,2,opt,name=TodaySign,proto3" json:"TodaySign,omitempty"` //0.未签到 1.已签到 -} - -func (x *SCSignData) Reset() { - *x = SCSignData{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_actsign_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SCSignData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SCSignData) ProtoMessage() {} - -func (x *SCSignData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_actsign_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 SCSignData.ProtoReflect.Descriptor instead. -func (*SCSignData) Descriptor() ([]byte, []int) { - return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{3} -} - -func (x *SCSignData) GetSignCount() int32 { - if x != nil { - return x.SignCount - } - return 0 -} - -func (x *SCSignData) GetTodaySign() int32 { - if x != nil { - return x.TodaySign - } - return 0 -} - -var File_protocol_activity_actsign_proto protoreflect.FileDescriptor - -var file_protocol_activity_actsign_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x2f, 0x61, 0x63, 0x74, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x42, 0x0a, 0x06, 0x43, - 0x53, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x06, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, - 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x48, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x2a, 0x8a, 0x02, 0x0a, 0x14, 0x4f, - 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x41, 0x63, 0x74, 0x53, - 0x69, 0x67, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, - 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, - 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xe9, 0x07, 0x12, - 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x50, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x5f, 0x4c, 0x6f, 0x77, - 0x10, 0xea, 0x07, 0x12, 0x28, 0x0a, 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x56, 0x69, 0x70, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x07, 0x12, 0x28, 0x0a, - 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, - 0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x44, 0x61, 0x79, 0x5f, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0xec, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x52, 0x65, - 0x70, 0x65, 0x61, 0x74, 0x10, 0xed, 0x07, 0x2a, 0x7e, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x53, 0x69, - 0x67, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, - 0x10, 0xe6, 0x14, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x53, 0x69, 0x67, 0x6e, 0x10, 0xe7, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, - 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_protocol_activity_actsign_proto_rawDescOnce sync.Once - file_protocol_activity_actsign_proto_rawDescData = file_protocol_activity_actsign_proto_rawDesc -) - -func file_protocol_activity_actsign_proto_rawDescGZIP() []byte { - file_protocol_activity_actsign_proto_rawDescOnce.Do(func() { - file_protocol_activity_actsign_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocol_activity_actsign_proto_rawDescData) - }) - return file_protocol_activity_actsign_proto_rawDescData -} - -var file_protocol_activity_actsign_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_protocol_activity_actsign_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_protocol_activity_actsign_proto_goTypes = []interface{}{ - (OpResultCode_ActSign)(0), // 0: activity.OpResultCode_ActSign - (ActSignPacketID)(0), // 1: activity.ActSignPacketID - (*CSSign)(nil), // 2: activity.CSSign - (*SCSign)(nil), // 3: activity.SCSign - (*CSSignData)(nil), // 4: activity.CSSignData - (*SCSignData)(nil), // 5: activity.SCSignData -} -var file_protocol_activity_actsign_proto_depIdxs = []int32{ - 0, // 0: activity.SCSign.OpRetCode:type_name -> activity.OpResultCode_ActSign - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name -} - -func init() { file_protocol_activity_actsign_proto_init() } -func file_protocol_activity_actsign_proto_init() { - if File_protocol_activity_actsign_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_protocol_activity_actsign_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSSign); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_activity_actsign_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCSign); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_activity_actsign_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSSignData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_activity_actsign_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCSignData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_protocol_activity_actsign_proto_rawDesc, - NumEnums: 2, - NumMessages: 4, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_protocol_activity_actsign_proto_goTypes, - DependencyIndexes: file_protocol_activity_actsign_proto_depIdxs, - EnumInfos: file_protocol_activity_actsign_proto_enumTypes, - MessageInfos: file_protocol_activity_actsign_proto_msgTypes, - }.Build() - File_protocol_activity_actsign_proto = out.File - file_protocol_activity_actsign_proto_rawDesc = nil - file_protocol_activity_actsign_proto_goTypes = nil - file_protocol_activity_actsign_proto_depIdxs = nil -} diff --git a/protocol/activity/actsign.proto b/protocol/activity/actsign.proto deleted file mode 100644 index f7b6f65..0000000 --- a/protocol/activity/actsign.proto +++ /dev/null @@ -1,43 +0,0 @@ -syntax = "proto3"; -package activity; -option go_package = "mongo.games.com/game/protocol/activity"; - -//操作结果 -enum OpResultCode_ActSign { - OPRC_Activity_Sign_Sucess = 0; //成功 - OPRC_Activity_Sign_Error = 1; //失败 - OPRC_Activity_Sign_Close = 1001; //活动未开启 - OPRC_Activity_Sign_PayNum_Low = 1002; //未达到最低充值金额 - OPRC_Activity_Sign_Config_Vip_Error = 1003; //vip不匹配 - OPRC_Activity_Sign_Config_Day_Error = 1004; //签到天数不匹配 - OPRC_Activity_Sign_Repeat = 1005; //重复签到 -} -// 签到 -enum ActSignPacketID { - PACKET_SignZero = 0;// 弃用消息号 - PACKET_CSSign = 2662;// 签到 - PACKET_SCSign = 2663; - PACKET_CSSignData = 2664;// 签到数据 - PACKET_SCSignData = 2665; -} - -//PACKET_CSSign -message CSSign { - int32 SignIndex = 1; - int32 SignType = 2; //0.普通签到 1.双倍签到 -} -//PACKET_SCSign -message SCSign { - int32 SignIndex = 1; - int32 SignType = 2; //0.普通签到 1.双倍签到 - OpResultCode_ActSign OpRetCode = 3; -} - -//PACKET_CSSignData -message CSSignData { -} -//PACKET_SCSignData -message SCSignData { - int32 SignCount = 1; - int32 TodaySign = 2; //0.未签到 1.已签到 -} \ No newline at end of file diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index d810494..5ada796 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -192,22 +192,29 @@ type SCNianData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 - ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 - BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 - BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 - RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置 - AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 - BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 - BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 - SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 - BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 - BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 - ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 - ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 - LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件 - RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件 - Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭 + ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 + ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 + BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 + BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 + RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置 + AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 + BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 + BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 + SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 + BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 + ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 + ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 + LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件 + RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件 + Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭 + OtherSignAwardCount int32 `protobuf:"varint,17,opt,name=OtherSignAwardCount,proto3" json:"OtherSignAwardCount,omitempty"` //额外奖励领取次数 + OtherSignAwardProp int32 `protobuf:"varint,18,opt,name=OtherSignAwardProp,proto3" json:"OtherSignAwardProp,omitempty"` //额外奖励概率 + OtherSignAward []*RankAwardData `protobuf:"bytes,19,rep,name=OtherSignAward,proto3" json:"OtherSignAward,omitempty"` //签到额外奖励 + OtherSignMaxCount int32 `protobuf:"varint,20,opt,name=OtherSignMaxCount,proto3" json:"OtherSignMaxCount,omitempty"` //额外奖励领取次数上限 + AttackMaxHp int64 `protobuf:"varint,21,opt,name=AttackMaxHp,proto3" json:"AttackMaxHp,omitempty"` //单次攻击最大血量 + AttackSumHp int64 `protobuf:"varint,22,opt,name=AttackSumHp,proto3" json:"AttackSumHp,omitempty"` //攻击总伤害 + SignAward []*RankAwardData `protobuf:"bytes,23,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 } func (x *SCNianData) Reset() { @@ -354,6 +361,55 @@ func (x *SCNianData) GetSwitch() int32 { return 0 } +func (x *SCNianData) GetOtherSignAwardCount() int32 { + if x != nil { + return x.OtherSignAwardCount + } + return 0 +} + +func (x *SCNianData) GetOtherSignAwardProp() int32 { + if x != nil { + return x.OtherSignAwardProp + } + return 0 +} + +func (x *SCNianData) GetOtherSignAward() []*RankAwardData { + if x != nil { + return x.OtherSignAward + } + return nil +} + +func (x *SCNianData) GetOtherSignMaxCount() int32 { + if x != nil { + return x.OtherSignMaxCount + } + return 0 +} + +func (x *SCNianData) GetAttackMaxHp() int64 { + if x != nil { + return x.AttackMaxHp + } + return 0 +} + +func (x *SCNianData) GetAttackSumHp() int64 { + if x != nil { + return x.AttackSumHp + } + return 0 +} + +func (x *SCNianData) GetSignAward() []*RankAwardData { + if x != nil { + return x.SignAward + } + return nil +} + type ShopData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -734,15 +790,17 @@ type SCNianAttackData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-小爆竹 2-小爆竹*10 3-大爆竹 - BossHp int64 `protobuf:"varint,2,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //BOSS当前血量 - Award []*RankAwardData `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` //获得道具 - AttackHp int64 `protobuf:"varint,4,opt,name=AttackHp,proto3" json:"AttackHp,omitempty"` // 攻击伤害 - IsDie bool `protobuf:"varint,5,opt,name=IsDie,proto3" json:"IsDie,omitempty"` //BOSS是否死亡 - DieAward []*RankAwardData `protobuf:"bytes,6,rep,name=DieAward,proto3" json:"DieAward,omitempty"` //BOSS死亡奖励 - BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 - ExtraDrop []*RankAwardData `protobuf:"bytes,8,rep,name=ExtraDrop,proto3" json:"ExtraDrop,omitempty"` //大爆竹额外掉落 - FloorReward []*RankAwardData `protobuf:"bytes,9,rep,name=FloorReward,proto3" json:"FloorReward,omitempty"` //保底奖励 + TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-小爆竹 2-小爆竹*10 3-大爆竹 + BossHp int64 `protobuf:"varint,2,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //BOSS当前血量 + Award []*RankAwardData `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` //获得道具 + AttackHp int64 `protobuf:"varint,4,opt,name=AttackHp,proto3" json:"AttackHp,omitempty"` // 攻击伤害 + IsDie bool `protobuf:"varint,5,opt,name=IsDie,proto3" json:"IsDie,omitempty"` //BOSS是否死亡 + DieAward []*RankAwardData `protobuf:"bytes,6,rep,name=DieAward,proto3" json:"DieAward,omitempty"` //BOSS死亡奖励 + BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 + ExtraDrop []*RankAwardData `protobuf:"bytes,8,rep,name=ExtraDrop,proto3" json:"ExtraDrop,omitempty"` //大爆竹额外掉落 + FloorReward []*RankAwardData `protobuf:"bytes,9,rep,name=FloorReward,proto3" json:"FloorReward,omitempty"` //保底奖励 + AttackMaxHp int64 `protobuf:"varint,10,opt,name=AttackMaxHp,proto3" json:"AttackMaxHp,omitempty"` //单次攻击最大血量 + AttackSumHp int64 `protobuf:"varint,11,opt,name=AttackSumHp,proto3" json:"AttackSumHp,omitempty"` //攻击总伤害 } func (x *SCNianAttackData) Reset() { @@ -840,6 +898,20 @@ func (x *SCNianAttackData) GetFloorReward() []*RankAwardData { return nil } +func (x *SCNianAttackData) GetAttackMaxHp() int64 { + if x != nil { + return x.AttackMaxHp + } + return 0 +} + +func (x *SCNianAttackData) GetAttackSumHp() int64 { + if x != nil { + return x.AttackSumHp + } + return 0 +} + //领取签到奖励 //PACKET_CSNianSignAward type CSNianSignAward struct { @@ -886,9 +958,12 @@ type SCNianSignAward struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` - SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 - OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 + SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` + SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 + OtherSignAward []*RankAwardData `protobuf:"bytes,3,rep,name=OtherSignAward,proto3" json:"OtherSignAward,omitempty"` //签到额外奖励 + OtherSignAwardCount int32 `protobuf:"varint,4,opt,name=OtherSignAwardCount,proto3" json:"OtherSignAwardCount,omitempty"` //额外奖励领取次数 + OtherSignAwardProp int32 `protobuf:"varint,5,opt,name=OtherSignAwardProp,proto3" json:"OtherSignAwardProp,omitempty"` //额外奖励概率 + OpRetCode OpResultCode_Nian `protobuf:"varint,6,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianSignAward) Reset() { @@ -937,6 +1012,27 @@ func (x *SCNianSignAward) GetSignAward() []*RankAwardData { return nil } +func (x *SCNianSignAward) GetOtherSignAward() []*RankAwardData { + if x != nil { + return x.OtherSignAward + } + return nil +} + +func (x *SCNianSignAward) GetOtherSignAwardCount() int32 { + if x != nil { + return x.OtherSignAwardCount + } + return 0 +} + +func (x *SCNianSignAward) GetOtherSignAwardProp() int32 { + if x != nil { + return x.OtherSignAwardProp + } + return 0 +} + func (x *SCNianSignAward) GetOpRetCode() OpResultCode_Nian { if x != nil { return x.OpRetCode @@ -1063,7 +1159,7 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc2, 0x04, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x07, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -1099,113 +1195,148 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x5c, 0x0a, 0x08, 0x53, - 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, - 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, - 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, - 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, - 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, - 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, - 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, - 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, - 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, - 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, - 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, - 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, + 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, + 0x72, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x3f, 0x0a, + 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, + 0x0a, 0x11, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x20, + 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, + 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x17, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, + 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, + 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x5c, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, + 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, + 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, + 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, + 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, + 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, + 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, + 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, + 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, + 0x22, 0xac, 0x03, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, + 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, - 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, + 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, + 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, - 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, - 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, + 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, + 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x20, 0x0a, + 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, + 0x72, 0x64, 0x22, 0xcc, 0x02, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, - 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, - 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, - 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x61, 0x72, 0x64, 0x12, 0x3f, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, + 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x13, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, - 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, - 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, - 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, - 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, - 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, - 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, - 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, - 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, - 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, - 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, - 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, + 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, + 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, + 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, + 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x10, 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1243,22 +1374,25 @@ var file_protocol_activity_nian_proto_goTypes = []interface{}{ var file_protocol_activity_nian_proto_depIdxs = []int32{ 7, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData 4, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData - 1, // 2: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian - 8, // 3: activity.NianRankData.Data:type_name -> activity.NianRankInfo - 9, // 4: activity.NianRankInfo.Award:type_name -> activity.RankAwardData - 9, // 5: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData - 9, // 6: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData - 9, // 7: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData - 9, // 8: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData - 9, // 9: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 1, // 10: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian - 9, // 11: activity.SCNianChange.Award:type_name -> activity.RankAwardData - 1, // 12: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 9, // 2: activity.SCNianData.OtherSignAward:type_name -> activity.RankAwardData + 9, // 3: activity.SCNianData.SignAward:type_name -> activity.RankAwardData + 1, // 4: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian + 8, // 5: activity.NianRankData.Data:type_name -> activity.NianRankInfo + 9, // 6: activity.NianRankInfo.Award:type_name -> activity.RankAwardData + 9, // 7: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData + 9, // 8: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData + 9, // 9: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData + 9, // 10: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData + 9, // 11: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData + 9, // 12: activity.SCNianSignAward.OtherSignAward:type_name -> activity.RankAwardData + 1, // 13: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian + 9, // 14: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 1, // 15: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_protocol_activity_nian_proto_init() } diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index d819df8..ee3a6d0 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -45,6 +45,13 @@ message SCNianData{ string LuckyRankNeed = 14; //幸运榜上榜条件 string RankNeed = 15; //总伤害榜上榜条件 int32 Switch = 16; //活动开关 1.开启 2.关闭 + int32 OtherSignAwardCount = 17;//额外奖励领取次数 + int32 OtherSignAwardProp = 18;//额外奖励概率 + repeated RankAwardData OtherSignAward = 19;//签到额外奖励 + int32 OtherSignMaxCount = 20;//额外奖励领取次数上限 + int64 AttackMaxHp =21; //单次攻击最大血量 + int64 AttackSumHp = 22; //攻击总伤害 + repeated RankAwardData SignAward = 23;//签到奖励 } message ShopData{ @@ -93,6 +100,8 @@ message SCNianAttackData{ int64 BuffCount = 7; //BUFF剩余次数 repeated RankAwardData ExtraDrop = 8;//大爆竹额外掉落 repeated RankAwardData FloorReward = 9;//保底奖励 + int64 AttackMaxHp = 10; //单次攻击最大血量 + int64 AttackSumHp = 11; //攻击总伤害 } //领取签到奖励 //PACKET_CSNianSignAward @@ -102,7 +111,10 @@ message CSNianSignAward{ message SCNianSignAward{ int64 SignAwardTime = 1; repeated RankAwardData SignAward = 2;//签到奖励 - OpResultCode_Nian OpRetCode = 3; // 返回错误码 + repeated RankAwardData OtherSignAward = 3;//签到额外奖励 + int32 OtherSignAwardCount = 4;//额外奖励领取次数 + int32 OtherSignAwardProp = 5;//额外奖励概率 + OpResultCode_Nian OpRetCode = 6; // 返回错误码 } //兑换 //PACKET_CSNianChange diff --git a/protocol/activity/pushcoin.pb.go b/protocol/activity/pushcoin.pb.go new file mode 100644 index 0000000..5ab35a5 --- /dev/null +++ b/protocol/activity/pushcoin.pb.go @@ -0,0 +1,1016 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1-devel +// protoc v3.19.4 +// source: protocol/activity/pushcoin.proto + +package activity + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PushCoinPacketID int32 + +const ( + PushCoinPacketID_PACKET_PushCoin_ZERO PushCoinPacketID = 0 // 弃用消息号 + PushCoinPacketID_PACKET_CSPushCoinInfo PushCoinPacketID = 2680 // 信息 + PushCoinPacketID_PACKET_SCPushCoinInfo PushCoinPacketID = 2681 // 信息返回 + PushCoinPacketID_PACKET_CSPushCoinPlayerOp PushCoinPacketID = 2682 // 玩家操作 + PushCoinPacketID_PACKET_SCPushCoinPlayerOp PushCoinPacketID = 2683 // 玩家操作返回 + PushCoinPacketID_PACKET_NotifyPowerLine PushCoinPacketID = 2684 // 通知能量值 + PushCoinPacketID_PACKET_NotifyDrawInfo PushCoinPacketID = 2685 // 抽奖信息 +) + +// Enum value maps for PushCoinPacketID. +var ( + PushCoinPacketID_name = map[int32]string{ + 0: "PACKET_PushCoin_ZERO", + 2680: "PACKET_CSPushCoinInfo", + 2681: "PACKET_SCPushCoinInfo", + 2682: "PACKET_CSPushCoinPlayerOp", + 2683: "PACKET_SCPushCoinPlayerOp", + 2684: "PACKET_NotifyPowerLine", + 2685: "PACKET_NotifyDrawInfo", + } + PushCoinPacketID_value = map[string]int32{ + "PACKET_PushCoin_ZERO": 0, + "PACKET_CSPushCoinInfo": 2680, + "PACKET_SCPushCoinInfo": 2681, + "PACKET_CSPushCoinPlayerOp": 2682, + "PACKET_SCPushCoinPlayerOp": 2683, + "PACKET_NotifyPowerLine": 2684, + "PACKET_NotifyDrawInfo": 2685, + } +) + +func (x PushCoinPacketID) Enum() *PushCoinPacketID { + p := new(PushCoinPacketID) + *p = x + return p +} + +func (x PushCoinPacketID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PushCoinPacketID) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_activity_pushcoin_proto_enumTypes[0].Descriptor() +} + +func (PushCoinPacketID) Type() protoreflect.EnumType { + return &file_protocol_activity_pushcoin_proto_enumTypes[0] +} + +func (x PushCoinPacketID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PushCoinPacketID.Descriptor instead. +func (PushCoinPacketID) EnumDescriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{0} +} + +type OpCodes int32 + +const ( + OpCodes_OP_Zero OpCodes = 0 + OpCodes_OP_Bet OpCodes = 1 // 下注 OpParam 道具id + OpCodes_OP_Gain OpCodes = 2 // 得分 OpParam 1有效区 2无效区 OpItem 获得道具 + OpCodes_OP_Shake OpCodes = 3 // 震动 OpParam 消耗次数 + OpCodes_OP_Refresh OpCodes = 4 // 刷新 OpParam 桌面金额 + OpCodes_OP_Exchange OpCodes = 5 // 兑换 OpParam 兑换id +) + +// Enum value maps for OpCodes. +var ( + OpCodes_name = map[int32]string{ + 0: "OP_Zero", + 1: "OP_Bet", + 2: "OP_Gain", + 3: "OP_Shake", + 4: "OP_Refresh", + 5: "OP_Exchange", + } + OpCodes_value = map[string]int32{ + "OP_Zero": 0, + "OP_Bet": 1, + "OP_Gain": 2, + "OP_Shake": 3, + "OP_Refresh": 4, + "OP_Exchange": 5, + } +) + +func (x OpCodes) Enum() *OpCodes { + p := new(OpCodes) + *p = x + return p +} + +func (x OpCodes) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpCodes) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_activity_pushcoin_proto_enumTypes[1].Descriptor() +} + +func (OpCodes) Type() protoreflect.EnumType { + return &file_protocol_activity_pushcoin_proto_enumTypes[1] +} + +func (x OpCodes) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpCodes.Descriptor instead. +func (OpCodes) EnumDescriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{1} +} + +type OpResultPushCoinCode int32 + +const ( + OpResultPushCoinCode_OPRC_PushCoin_Success OpResultPushCoinCode = 0 //成功 + OpResultPushCoinCode_OPRC_PushCoin_Error OpResultPushCoinCode = 1 //失败 + OpResultPushCoinCode_OPRC_PushCoin_BetNotEnough OpResultPushCoinCode = 2 //投币,金币不足 + OpResultPushCoinCode_OPRC_PushCoin_ExchangeNotEnough OpResultPushCoinCode = 3 //兑换次数不足 + OpResultPushCoinCode_OPRC_PushCoin_ShakeNotEnough OpResultPushCoinCode = 4 //震动次数不足 + OpResultPushCoinCode_OPRC_PushCoin_ItemNotEnough OpResultPushCoinCode = 5 //兑换消耗道具不足 +) + +// Enum value maps for OpResultPushCoinCode. +var ( + OpResultPushCoinCode_name = map[int32]string{ + 0: "OPRC_PushCoin_Success", + 1: "OPRC_PushCoin_Error", + 2: "OPRC_PushCoin_BetNotEnough", + 3: "OPRC_PushCoin_ExchangeNotEnough", + 4: "OPRC_PushCoin_ShakeNotEnough", + 5: "OPRC_PushCoin_ItemNotEnough", + } + OpResultPushCoinCode_value = map[string]int32{ + "OPRC_PushCoin_Success": 0, + "OPRC_PushCoin_Error": 1, + "OPRC_PushCoin_BetNotEnough": 2, + "OPRC_PushCoin_ExchangeNotEnough": 3, + "OPRC_PushCoin_ShakeNotEnough": 4, + "OPRC_PushCoin_ItemNotEnough": 5, + } +) + +func (x OpResultPushCoinCode) Enum() *OpResultPushCoinCode { + p := new(OpResultPushCoinCode) + *p = x + return p +} + +func (x OpResultPushCoinCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpResultPushCoinCode) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_activity_pushcoin_proto_enumTypes[2].Descriptor() +} + +func (OpResultPushCoinCode) Type() protoreflect.EnumType { + return &file_protocol_activity_pushcoin_proto_enumTypes[2] +} + +func (x OpResultPushCoinCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpResultPushCoinCode.Descriptor instead. +func (OpResultPushCoinCode) EnumDescriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{2} +} + +//信息 +//PACKET_CSPushCoinInfo +type CSPushCoinInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSPushCoinInfo) Reset() { + *x = CSPushCoinInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPushCoinInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPushCoinInfo) ProtoMessage() {} + +func (x *CSPushCoinInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 CSPushCoinInfo.ProtoReflect.Descriptor instead. +func (*CSPushCoinInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{0} +} + +//PACKET_SCPushCoinInfo +type SCPushCoinInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExchangeList []*ExchangeInfo `protobuf:"bytes,1,rep,name=ExchangeList,proto3" json:"ExchangeList,omitempty"` //兑换信息 + DrawList []*DrawInfo `protobuf:"bytes,2,rep,name=DrawList,proto3" json:"DrawList,omitempty"` //抽奖信息 + ShakeTimes int32 `protobuf:"varint,3,opt,name=ShakeTimes,proto3" json:"ShakeTimes,omitempty"` //可震动次数 + PowerLine int64 `protobuf:"varint,4,opt,name=PowerLine,proto3" json:"PowerLine,omitempty"` // 当前能量值 + PowerLineMax int64 `protobuf:"varint,5,opt,name=PowerLineMax,proto3" json:"PowerLineMax,omitempty"` // 能量值上限 + RefreshTimes int64 `protobuf:"varint,6,opt,name=RefreshTimes,proto3" json:"RefreshTimes,omitempty"` // 刷新次数 + Items []*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty"` // 桌面数据 +} + +func (x *SCPushCoinInfo) Reset() { + *x = SCPushCoinInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPushCoinInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPushCoinInfo) ProtoMessage() {} + +func (x *SCPushCoinInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 SCPushCoinInfo.ProtoReflect.Descriptor instead. +func (*SCPushCoinInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{1} +} + +func (x *SCPushCoinInfo) GetExchangeList() []*ExchangeInfo { + if x != nil { + return x.ExchangeList + } + return nil +} + +func (x *SCPushCoinInfo) GetDrawList() []*DrawInfo { + if x != nil { + return x.DrawList + } + return nil +} + +func (x *SCPushCoinInfo) GetShakeTimes() int32 { + if x != nil { + return x.ShakeTimes + } + return 0 +} + +func (x *SCPushCoinInfo) GetPowerLine() int64 { + if x != nil { + return x.PowerLine + } + return 0 +} + +func (x *SCPushCoinInfo) GetPowerLineMax() int64 { + if x != nil { + return x.PowerLineMax + } + return 0 +} + +func (x *SCPushCoinInfo) GetRefreshTimes() int64 { + if x != nil { + return x.RefreshTimes + } + return 0 +} + +func (x *SCPushCoinInfo) GetItems() []*ItemInfo { + if x != nil { + return x.Items + } + return nil +} + +type ItemInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id + ItemNum int64 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 +} + +func (x *ItemInfo) Reset() { + *x = ItemInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ItemInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ItemInfo) ProtoMessage() {} + +func (x *ItemInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 ItemInfo.ProtoReflect.Descriptor instead. +func (*ItemInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{2} +} + +func (x *ItemInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *ItemInfo) GetItemNum() int64 { + if x != nil { + return x.ItemNum + } + return 0 +} + +type ExchangeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //兑换id + Cost []*ItemInfo `protobuf:"bytes,2,rep,name=Cost,proto3" json:"Cost,omitempty"` //消耗道具 + Gain []*ItemInfo `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty"` //获得道具 + Times int64 `protobuf:"varint,4,opt,name=Times,proto3" json:"Times,omitempty"` //可兑换次数 -1无限 + TotalTimes int64 `protobuf:"varint,5,opt,name=TotalTimes,proto3" json:"TotalTimes,omitempty"` //总共兑换次数 -1无限 +} + +func (x *ExchangeInfo) Reset() { + *x = ExchangeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeInfo) ProtoMessage() {} + +func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 ExchangeInfo.ProtoReflect.Descriptor instead. +func (*ExchangeInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{3} +} + +func (x *ExchangeInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ExchangeInfo) GetCost() []*ItemInfo { + if x != nil { + return x.Cost + } + return nil +} + +func (x *ExchangeInfo) GetGain() []*ItemInfo { + if x != nil { + return x.Gain + } + return nil +} + +func (x *ExchangeInfo) GetTimes() int64 { + if x != nil { + return x.Times + } + return 0 +} + +func (x *ExchangeInfo) GetTotalTimes() int64 { + if x != nil { + return x.TotalTimes + } + return 0 +} + +//抽奖信息 +//PACKET_NotifyDrawInfo +type DrawInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //抽奖id + ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id + ItemNum int32 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 + Coin int64 `protobuf:"varint,4,opt,name=Coin,proto3" json:"Coin,omitempty"` //价值 +} + +func (x *DrawInfo) Reset() { + *x = DrawInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DrawInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DrawInfo) ProtoMessage() {} + +func (x *DrawInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 DrawInfo.ProtoReflect.Descriptor instead. +func (*DrawInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{4} +} + +func (x *DrawInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DrawInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *DrawInfo) GetItemNum() int32 { + if x != nil { + return x.ItemNum + } + return 0 +} + +func (x *DrawInfo) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +//玩家操作 +//PACKET_CSPushCoinPlayerOp +type CSPushCoinPlayerOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode OpCodes `protobuf:"varint,1,opt,name=OpCode,proto3,enum=activity.OpCodes" json:"OpCode,omitempty"` + OpParam int64 `protobuf:"varint,2,opt,name=OpParam,proto3" json:"OpParam,omitempty"` + OpItem []*ItemInfo `protobuf:"bytes,3,rep,name=OpItem,proto3" json:"OpItem,omitempty"` +} + +func (x *CSPushCoinPlayerOp) Reset() { + *x = CSPushCoinPlayerOp{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPushCoinPlayerOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPushCoinPlayerOp) ProtoMessage() {} + +func (x *CSPushCoinPlayerOp) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 CSPushCoinPlayerOp.ProtoReflect.Descriptor instead. +func (*CSPushCoinPlayerOp) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{5} +} + +func (x *CSPushCoinPlayerOp) GetOpCode() OpCodes { + if x != nil { + return x.OpCode + } + return OpCodes_OP_Zero +} + +func (x *CSPushCoinPlayerOp) GetOpParam() int64 { + if x != nil { + return x.OpParam + } + return 0 +} + +func (x *CSPushCoinPlayerOp) GetOpItem() []*ItemInfo { + if x != nil { + return x.OpItem + } + return nil +} + +//PACKET_SCPushCoinPlayerOp +type SCPushCoinPlayerOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultPushCoinCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=activity.OpResultPushCoinCode" json:"OpRetCode,omitempty"` + OpCode OpCodes `protobuf:"varint,2,opt,name=OpCode,proto3,enum=activity.OpCodes" json:"OpCode,omitempty"` + Exchange *ExchangeInfo `protobuf:"bytes,3,opt,name=Exchange,proto3" json:"Exchange,omitempty"` // 兑换信息,加到背包 + BetId int32 `protobuf:"varint,4,opt,name=BetId,proto3" json:"BetId,omitempty"` // 金币id +} + +func (x *SCPushCoinPlayerOp) Reset() { + *x = SCPushCoinPlayerOp{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPushCoinPlayerOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPushCoinPlayerOp) ProtoMessage() {} + +func (x *SCPushCoinPlayerOp) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 SCPushCoinPlayerOp.ProtoReflect.Descriptor instead. +func (*SCPushCoinPlayerOp) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{6} +} + +func (x *SCPushCoinPlayerOp) GetOpRetCode() OpResultPushCoinCode { + if x != nil { + return x.OpRetCode + } + return OpResultPushCoinCode_OPRC_PushCoin_Success +} + +func (x *SCPushCoinPlayerOp) GetOpCode() OpCodes { + if x != nil { + return x.OpCode + } + return OpCodes_OP_Zero +} + +func (x *SCPushCoinPlayerOp) GetExchange() *ExchangeInfo { + if x != nil { + return x.Exchange + } + return nil +} + +func (x *SCPushCoinPlayerOp) GetBetId() int32 { + if x != nil { + return x.BetId + } + return 0 +} + +//通知能量值 +//PACKET_NotifyPowerLine +type NotifyPowerLine struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PowerLine int64 `protobuf:"varint,1,opt,name=PowerLine,proto3" json:"PowerLine,omitempty"` // 当前能量值 + PowerLineMax int64 `protobuf:"varint,2,opt,name=PowerLineMax,proto3" json:"PowerLineMax,omitempty"` // 能量值上限 +} + +func (x *NotifyPowerLine) Reset() { + *x = NotifyPowerLine{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyPowerLine) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyPowerLine) ProtoMessage() {} + +func (x *NotifyPowerLine) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_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 NotifyPowerLine.ProtoReflect.Descriptor instead. +func (*NotifyPowerLine) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{7} +} + +func (x *NotifyPowerLine) GetPowerLine() int64 { + if x != nil { + return x.PowerLine + } + return 0 +} + +func (x *NotifyPowerLine) GetPowerLineMax() int64 { + if x != nil { + return x.PowerLineMax + } + return 0 +} + +var File_protocol_activity_pushcoin_proto protoreflect.FileDescriptor + +var file_protocol_activity_pushcoin_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x10, 0x0a, 0x0e, + 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xac, + 0x02, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x08, 0x44, 0x72, 0x61, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x44, 0x72, 0x61, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x12, + 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3c, 0x0a, + 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0xa4, 0x01, 0x0a, 0x0c, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x43, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x22, 0x60, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x06, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x2a, 0x0a, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xc7, 0x01, 0x0a, + 0x12, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4f, 0x70, 0x12, 0x3c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, + 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x29, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x73, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x08, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x42, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x42, 0x65, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x2a, 0xdd, 0x01, 0x0a, 0x10, + 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x69, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xf8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xf9, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, + 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, + 0xfa, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, + 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, + 0xfb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xfc, 0x14, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfd, 0x14, 0x2a, 0x5e, 0x0a, 0x07, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x5a, 0x65, 0x72, + 0x6f, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x50, 0x5f, 0x42, 0x65, 0x74, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x47, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x4f, 0x50, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, + 0x5f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, + 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x05, 0x2a, 0xd2, 0x01, 0x0a, 0x14, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, + 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x42, 0x65, 0x74, 0x4e, 0x6f, 0x74, + 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x03, 0x12, 0x20, 0x0a, + 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x53, + 0x68, 0x61, 0x6b, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x04, 0x12, + 0x1f, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x05, + 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_protocol_activity_pushcoin_proto_rawDescOnce sync.Once + file_protocol_activity_pushcoin_proto_rawDescData = file_protocol_activity_pushcoin_proto_rawDesc +) + +func file_protocol_activity_pushcoin_proto_rawDescGZIP() []byte { + file_protocol_activity_pushcoin_proto_rawDescOnce.Do(func() { + file_protocol_activity_pushcoin_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocol_activity_pushcoin_proto_rawDescData) + }) + return file_protocol_activity_pushcoin_proto_rawDescData +} + +var file_protocol_activity_pushcoin_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_protocol_activity_pushcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_protocol_activity_pushcoin_proto_goTypes = []interface{}{ + (PushCoinPacketID)(0), // 0: activity.PushCoinPacketID + (OpCodes)(0), // 1: activity.OpCodes + (OpResultPushCoinCode)(0), // 2: activity.OpResultPushCoinCode + (*CSPushCoinInfo)(nil), // 3: activity.CSPushCoinInfo + (*SCPushCoinInfo)(nil), // 4: activity.SCPushCoinInfo + (*ItemInfo)(nil), // 5: activity.ItemInfo + (*ExchangeInfo)(nil), // 6: activity.ExchangeInfo + (*DrawInfo)(nil), // 7: activity.DrawInfo + (*CSPushCoinPlayerOp)(nil), // 8: activity.CSPushCoinPlayerOp + (*SCPushCoinPlayerOp)(nil), // 9: activity.SCPushCoinPlayerOp + (*NotifyPowerLine)(nil), // 10: activity.NotifyPowerLine +} +var file_protocol_activity_pushcoin_proto_depIdxs = []int32{ + 6, // 0: activity.SCPushCoinInfo.ExchangeList:type_name -> activity.ExchangeInfo + 7, // 1: activity.SCPushCoinInfo.DrawList:type_name -> activity.DrawInfo + 5, // 2: activity.SCPushCoinInfo.Items:type_name -> activity.ItemInfo + 5, // 3: activity.ExchangeInfo.Cost:type_name -> activity.ItemInfo + 5, // 4: activity.ExchangeInfo.Gain:type_name -> activity.ItemInfo + 1, // 5: activity.CSPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes + 5, // 6: activity.CSPushCoinPlayerOp.OpItem:type_name -> activity.ItemInfo + 2, // 7: activity.SCPushCoinPlayerOp.OpRetCode:type_name -> activity.OpResultPushCoinCode + 1, // 8: activity.SCPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes + 6, // 9: activity.SCPushCoinPlayerOp.Exchange:type_name -> activity.ExchangeInfo + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_protocol_activity_pushcoin_proto_init() } +func file_protocol_activity_pushcoin_proto_init() { + if File_protocol_activity_pushcoin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protocol_activity_pushcoin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPushCoinInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ItemInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DrawInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPushCoinPlayerOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinPlayerOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotifyPowerLine); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protocol_activity_pushcoin_proto_rawDesc, + NumEnums: 3, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protocol_activity_pushcoin_proto_goTypes, + DependencyIndexes: file_protocol_activity_pushcoin_proto_depIdxs, + EnumInfos: file_protocol_activity_pushcoin_proto_enumTypes, + MessageInfos: file_protocol_activity_pushcoin_proto_msgTypes, + }.Build() + File_protocol_activity_pushcoin_proto = out.File + file_protocol_activity_pushcoin_proto_rawDesc = nil + file_protocol_activity_pushcoin_proto_goTypes = nil + file_protocol_activity_pushcoin_proto_depIdxs = nil +} diff --git a/protocol/activity/pushcoin.proto b/protocol/activity/pushcoin.proto new file mode 100644 index 0000000..bdb624c --- /dev/null +++ b/protocol/activity/pushcoin.proto @@ -0,0 +1,91 @@ +syntax = "proto3"; +package activity; +option go_package = "mongo.games.com/game/protocol/activity"; + +enum PushCoinPacketID { + PACKET_PushCoin_ZERO = 0;// 弃用消息号 + PACKET_CSPushCoinInfo = 2680; // 信息 + PACKET_SCPushCoinInfo = 2681; // 信息返回 + PACKET_CSPushCoinPlayerOp = 2682; // 玩家操作 + PACKET_SCPushCoinPlayerOp = 2683; // 玩家操作返回 + PACKET_NotifyPowerLine = 2684; // 通知能量值 + PACKET_NotifyDrawInfo = 2685; // 抽奖信息 +} + +//信息 +//PACKET_CSPushCoinInfo +message CSPushCoinInfo { +} +//PACKET_SCPushCoinInfo +message SCPushCoinInfo { + repeated ExchangeInfo ExchangeList = 1; //兑换信息 + repeated DrawInfo DrawList = 2; //抽奖信息 + int32 ShakeTimes = 3; //可震动次数 + int64 PowerLine = 4; // 当前能量值 + int64 PowerLineMax = 5; // 能量值上限 + int64 RefreshTimes = 6; // 刷新次数 + repeated ItemInfo Items = 7; // 桌面数据 +} + +message ItemInfo{ + int32 ItemId = 1; //道具id + int64 ItemNum = 2; //道具数量 +} + +message ExchangeInfo{ + int32 Id = 1; //兑换id + repeated ItemInfo Cost = 2; //消耗道具 + repeated ItemInfo Gain = 3; //获得道具 + int64 Times = 4; //可兑换次数 -1无限 + int64 TotalTimes = 5; //总共兑换次数 -1无限 +} + +//抽奖信息 +//PACKET_NotifyDrawInfo +message DrawInfo{ + int32 Id = 1; //抽奖id + int32 ItemId = 2; //道具id + int32 ItemNum = 3; //道具数量 + int64 Coin = 4; //价值 +} + +//玩家操作 +//PACKET_CSPushCoinPlayerOp +message CSPushCoinPlayerOp { + OpCodes OpCode = 1; + int64 OpParam = 2; + repeated ItemInfo OpItem = 3; +} + +enum OpCodes { + OP_Zero = 0; + OP_Bet = 1; // 下注 OpParam 道具id + OP_Gain = 2; // 得分 OpParam 1有效区 2无效区 OpItem 获得道具 + OP_Shake = 3; // 震动 OpParam 消耗次数 + OP_Refresh = 4; // 刷新 OpParam 桌面金额 + OP_Exchange = 5; // 兑换 OpParam 兑换id +} + +enum OpResultPushCoinCode { + OPRC_PushCoin_Success = 0; //成功 + OPRC_PushCoin_Error = 1; //失败 + OPRC_PushCoin_BetNotEnough = 2; //投币,金币不足 + OPRC_PushCoin_ExchangeNotEnough = 3; //兑换次数不足 + OPRC_PushCoin_ShakeNotEnough = 4; //震动次数不足 + OPRC_PushCoin_ItemNotEnough = 5; //兑换消耗道具不足 +} + +//PACKET_SCPushCoinPlayerOp +message SCPushCoinPlayerOp { + OpResultPushCoinCode OpRetCode = 1; + OpCodes OpCode = 2; + ExchangeInfo Exchange = 3; // 兑换信息,加到背包 + int32 BetId = 4; // 金币id +} + +//通知能量值 +//PACKET_NotifyPowerLine +message NotifyPowerLine { + int64 PowerLine = 1; // 当前能量值 + int64 PowerLineMax = 2; // 能量值上限 +} \ No newline at end of file diff --git a/protocol/cashmania/cashmania.pb.go b/protocol/cashmania/cashmania.pb.go index 623796b..9c7b2f8 100644 --- a/protocol/cashmania/cashmania.pb.go +++ b/protocol/cashmania/cashmania.pb.go @@ -208,7 +208,7 @@ func (x *CashManiaPlayerData) GetVIP() int32 { } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_CASHMANIA_SCCASHMANIAROOMINFO type SCCashManiaRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -337,7 +337,7 @@ func (x *SCCashManiaRoomInfo) GetPlayerInfo() string { } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_CASHMANIA_CSCASHMANIAOP type CSCashManiaOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -394,7 +394,7 @@ func (x *CSCashManiaOp) GetParams() []int64 { } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_CASHMANIA_SCCASHMANIAOP type SCCashManiaOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -459,7 +459,7 @@ func (x *SCCashManiaOp) GetParams() []int64 { } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_CASHMANIA_SCCASHMANIAROOMSTATE type SCCashManiaRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -523,7 +523,7 @@ func (x *SCCashManiaRoomState) GetParams() []int32 { return nil } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_CASHMANIA_SCCASHMANIABILLED type SCCashManiaBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/protocol/cashmania/cashmania.proto b/protocol/cashmania/cashmania.proto index fe0d37e..fc35847 100644 --- a/protocol/cashmania/cashmania.proto +++ b/protocol/cashmania/cashmania.proto @@ -27,7 +27,7 @@ message CashManiaPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_CASHMANIA_SCCASHMANIAROOMINFO message SCCashManiaRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCCashManiaRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_CASHMANIA_CSCASHMANIAOP message CSCashManiaOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_CASHMANIA_SCCASHMANIAOP message SCCashManiaOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_CASHMANIA_SCCASHMANIAROOMSTATE message SCCashManiaRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_CASHMANIA_SCCASHMANIABILLED message SCCashManiaBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2; diff --git a/protocol/doc.md b/protocol/doc.md index e8d8f01..7d605b1 100644 --- a/protocol/doc.md +++ b/protocol/doc.md @@ -193,5 +193,9 @@ - 5660~5669 +### pushcoin.proto + +- 5670~5679 + ### game.proto(玩家离开) - 8000~8099 \ No newline at end of file diff --git a/protocol/gatesofolympus/gatesofolympus.pb.go b/protocol/gatesofolympus/gatesofolympus.pb.go index 2d4df78..7ab7bc9 100644 --- a/protocol/gatesofolympus/gatesofolympus.pb.go +++ b/protocol/gatesofolympus/gatesofolympus.pb.go @@ -208,7 +208,7 @@ func (x *GatesOfOlympusPlayerData) GetVIP() int32 { } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO type SCGatesOfOlympusRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -337,7 +337,7 @@ func (x *SCGatesOfOlympusRoomInfo) GetPlayerInfo() string { } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP type CSGatesOfOlympusOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -394,7 +394,7 @@ func (x *CSGatesOfOlympusOp) GetParams() []int64 { } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSOP type SCGatesOfOlympusOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -459,7 +459,7 @@ func (x *SCGatesOfOlympusOp) GetParams() []int64 { } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMSTATE type SCGatesOfOlympusRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -523,7 +523,7 @@ func (x *SCGatesOfOlympusRoomState) GetParams() []int32 { return nil } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED type SCGatesOfOlympusBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/protocol/gatesofolympus/gatesofolympus.proto b/protocol/gatesofolympus/gatesofolympus.proto index ef76923..4d4b9bb 100644 --- a/protocol/gatesofolympus/gatesofolympus.proto +++ b/protocol/gatesofolympus/gatesofolympus.proto @@ -27,7 +27,7 @@ message GatesOfOlympusPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO message SCGatesOfOlympusRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCGatesOfOlympusRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP message CSGatesOfOlympusOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSOP message SCGatesOfOlympusOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMSTATE message SCGatesOfOlympusRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED message SCGatesOfOlympusBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2; diff --git a/protocol/pushcoin/pushcoin.pb.go b/protocol/pushcoin/pushcoin.pb.go new file mode 100644 index 0000000..eafa0fa --- /dev/null +++ b/protocol/pushcoin/pushcoin.pb.go @@ -0,0 +1,1166 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1-devel +// protoc v3.19.4 +// source: protocol/pushcoin/pushcoin.proto + +package pushcoin + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 5670~5679 +type PushCoinPacketID int32 + +const ( + PushCoinPacketID_PACKET_PushCoin_ZERO PushCoinPacketID = 0 // 弃用消息号 + PushCoinPacketID_PACKET_SCPushCoinRoomInfo PushCoinPacketID = 5670 // 房间信息 + PushCoinPacketID_PACKET_SCPushCoinRoomState PushCoinPacketID = 5671 // 房间状态 + PushCoinPacketID_PACKET_CSPushCoinPlayerOp PushCoinPacketID = 5672 // 玩家操作 + PushCoinPacketID_PACKET_SCPushCoinPlayerOp PushCoinPacketID = 5673 // 玩家操作返回 +) + +// Enum value maps for PushCoinPacketID. +var ( + PushCoinPacketID_name = map[int32]string{ + 0: "PACKET_PushCoin_ZERO", + 5670: "PACKET_SCPushCoinRoomInfo", + 5671: "PACKET_SCPushCoinRoomState", + 5672: "PACKET_CSPushCoinPlayerOp", + 5673: "PACKET_SCPushCoinPlayerOp", + } + PushCoinPacketID_value = map[string]int32{ + "PACKET_PushCoin_ZERO": 0, + "PACKET_SCPushCoinRoomInfo": 5670, + "PACKET_SCPushCoinRoomState": 5671, + "PACKET_CSPushCoinPlayerOp": 5672, + "PACKET_SCPushCoinPlayerOp": 5673, + } +) + +func (x PushCoinPacketID) Enum() *PushCoinPacketID { + p := new(PushCoinPacketID) + *p = x + return p +} + +func (x PushCoinPacketID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PushCoinPacketID) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_pushcoin_pushcoin_proto_enumTypes[0].Descriptor() +} + +func (PushCoinPacketID) Type() protoreflect.EnumType { + return &file_protocol_pushcoin_pushcoin_proto_enumTypes[0] +} + +func (x PushCoinPacketID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PushCoinPacketID.Descriptor instead. +func (PushCoinPacketID) EnumDescriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{0} +} + +type OpCodes int32 + +const ( + OpCodes_OP_Zero OpCodes = 0 + OpCodes_OP_Bet OpCodes = 1 // 下注 [下注金额] + OpCodes_OP_Gain OpCodes = 2 // 得分 [得分金额] + OpCodes_OP_Shake OpCodes = 3 // 震动 [消耗次数] + OpCodes_OP_Refresh OpCodes = 4 // 刷新 [桌面金额] + OpCodes_OP_Exchange OpCodes = 5 // 兑换 [兑换id] + OpCodes_OP_Draw OpCodes = 6 // 抽奖 [抽奖id] +) + +// Enum value maps for OpCodes. +var ( + OpCodes_name = map[int32]string{ + 0: "OP_Zero", + 1: "OP_Bet", + 2: "OP_Gain", + 3: "OP_Shake", + 4: "OP_Refresh", + 5: "OP_Exchange", + 6: "OP_Draw", + } + OpCodes_value = map[string]int32{ + "OP_Zero": 0, + "OP_Bet": 1, + "OP_Gain": 2, + "OP_Shake": 3, + "OP_Refresh": 4, + "OP_Exchange": 5, + "OP_Draw": 6, + } +) + +func (x OpCodes) Enum() *OpCodes { + p := new(OpCodes) + *p = x + return p +} + +func (x OpCodes) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpCodes) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_pushcoin_pushcoin_proto_enumTypes[1].Descriptor() +} + +func (OpCodes) Type() protoreflect.EnumType { + return &file_protocol_pushcoin_pushcoin_proto_enumTypes[1] +} + +func (x OpCodes) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpCodes.Descriptor instead. +func (OpCodes) EnumDescriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{1} +} + +type OpResultCode int32 + +const ( + OpResultCode_OPRC_Success OpResultCode = 0 //成功 + OpResultCode_OPRC_Error OpResultCode = 1 //失败 +) + +// Enum value maps for OpResultCode. +var ( + OpResultCode_name = map[int32]string{ + 0: "OPRC_Success", + 1: "OPRC_Error", + } + OpResultCode_value = map[string]int32{ + "OPRC_Success": 0, + "OPRC_Error": 1, + } +) + +func (x OpResultCode) Enum() *OpResultCode { + p := new(OpResultCode) + *p = x + return p +} + +func (x OpResultCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpResultCode) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_pushcoin_pushcoin_proto_enumTypes[2].Descriptor() +} + +func (OpResultCode) Type() protoreflect.EnumType { + return &file_protocol_pushcoin_pushcoin_proto_enumTypes[2] +} + +func (x OpResultCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpResultCode.Descriptor instead. +func (OpResultCode) EnumDescriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{2} +} + +//房间信息 +//PACKET_SCPushCoinRoomInfo +type SCPushCoinRoomInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id + GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id + RoomMode int32 `protobuf:"varint,3,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式 + Params []int32 `protobuf:"varint,4,rep,packed,name=Params,proto3" json:"Params,omitempty"` //规则参数 + State int32 `protobuf:"varint,5,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + TimeOut int32 `protobuf:"varint,6,opt,name=TimeOut,proto3" json:"TimeOut,omitempty"` //等待剩余时间 单位:秒 + Players []*PushCoinPlayerData `protobuf:"bytes,7,rep,name=Players,proto3" json:"Players,omitempty"` //房间内的玩家信息 + ExchangeList []*ExchangeInfo `protobuf:"bytes,8,rep,name=ExchangeList,proto3" json:"ExchangeList,omitempty"` //兑换信息 + DrawList []*DrawInfo `protobuf:"bytes,9,rep,name=DrawList,proto3" json:"DrawList,omitempty"` //抽奖信息 + BetList []int64 `protobuf:"varint,10,rep,packed,name=BetList,proto3" json:"BetList,omitempty"` //下注金额列表 +} + +func (x *SCPushCoinRoomInfo) Reset() { + *x = SCPushCoinRoomInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPushCoinRoomInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPushCoinRoomInfo) ProtoMessage() {} + +func (x *SCPushCoinRoomInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 SCPushCoinRoomInfo.ProtoReflect.Descriptor instead. +func (*SCPushCoinRoomInfo) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{0} +} + +func (x *SCPushCoinRoomInfo) GetRoomId() int32 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SCPushCoinRoomInfo) GetGameId() int32 { + if x != nil { + return x.GameId + } + return 0 +} + +func (x *SCPushCoinRoomInfo) GetRoomMode() int32 { + if x != nil { + return x.RoomMode + } + return 0 +} + +func (x *SCPushCoinRoomInfo) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +func (x *SCPushCoinRoomInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCPushCoinRoomInfo) GetTimeOut() int32 { + if x != nil { + return x.TimeOut + } + return 0 +} + +func (x *SCPushCoinRoomInfo) GetPlayers() []*PushCoinPlayerData { + if x != nil { + return x.Players + } + return nil +} + +func (x *SCPushCoinRoomInfo) GetExchangeList() []*ExchangeInfo { + if x != nil { + return x.ExchangeList + } + return nil +} + +func (x *SCPushCoinRoomInfo) GetDrawList() []*DrawInfo { + if x != nil { + return x.DrawList + } + return nil +} + +func (x *SCPushCoinRoomInfo) GetBetList() []int64 { + if x != nil { + return x.BetList + } + return nil +} + +type ItemInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id + ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 +} + +func (x *ItemInfo) Reset() { + *x = ItemInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ItemInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ItemInfo) ProtoMessage() {} + +func (x *ItemInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 ItemInfo.ProtoReflect.Descriptor instead. +func (*ItemInfo) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{1} +} + +func (x *ItemInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *ItemInfo) GetItemNum() int32 { + if x != nil { + return x.ItemNum + } + return 0 +} + +type ExchangeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //兑换id + Cost []*ItemInfo `protobuf:"bytes,2,rep,name=Cost,proto3" json:"Cost,omitempty"` //消耗道具 + Gain []*ItemInfo `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty"` //获得道具 + ShakeTimes int32 `protobuf:"varint,4,opt,name=ShakeTimes,proto3" json:"ShakeTimes,omitempty"` //获得震动次数 +} + +func (x *ExchangeInfo) Reset() { + *x = ExchangeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeInfo) ProtoMessage() {} + +func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 ExchangeInfo.ProtoReflect.Descriptor instead. +func (*ExchangeInfo) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{2} +} + +func (x *ExchangeInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ExchangeInfo) GetCost() []*ItemInfo { + if x != nil { + return x.Cost + } + return nil +} + +func (x *ExchangeInfo) GetGain() []*ItemInfo { + if x != nil { + return x.Gain + } + return nil +} + +func (x *ExchangeInfo) GetShakeTimes() int32 { + if x != nil { + return x.ShakeTimes + } + return 0 +} + +type DrawInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //抽奖id + ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id + ItemNum int32 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 + Coin int64 `protobuf:"varint,4,opt,name=Coin,proto3" json:"Coin,omitempty"` //价值 +} + +func (x *DrawInfo) Reset() { + *x = DrawInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DrawInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DrawInfo) ProtoMessage() {} + +func (x *DrawInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 DrawInfo.ProtoReflect.Descriptor instead. +func (*DrawInfo) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{3} +} + +func (x *DrawInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DrawInfo) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *DrawInfo) GetItemNum() int32 { + if x != nil { + return x.ItemNum + } + return 0 +} + +func (x *DrawInfo) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +type PushCoinPlayerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //名字 + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //账号 + Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像 + Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 + Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 + Flag int32 `protobuf:"varint,6,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 第一位:是否掉线(0:在线 1:掉线) 第二位:是否准备(0:未准备 1:已准备) + Params []string `protobuf:"bytes,7,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等 + VIP int32 `protobuf:"varint,8,opt,name=VIP,proto3" json:"VIP,omitempty"` + RoleId int32 `protobuf:"varint,9,opt,name=RoleId,proto3" json:"RoleId,omitempty"` //使用中的角色id + Level int64 `protobuf:"varint,10,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级 + Exp int64 `protobuf:"varint,11,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家经验 + SkinId int32 `protobuf:"varint,12,opt,name=SkinId,proto3" json:"SkinId,omitempty"` //皮肤id + ShakeTimes int32 `protobuf:"varint,13,opt,name=ShakeTimes,proto3" json:"ShakeTimes,omitempty"` //可震动次数 + BaseCoin int64 `protobuf:"varint,14,opt,name=BaseCoin,proto3" json:"BaseCoin,omitempty"` //当前底分(单次投币金额) + PowerLine int64 `protobuf:"varint,15,opt,name=PowerLine,proto3" json:"PowerLine,omitempty"` // 当前能量值 + PowerLineMax int64 `protobuf:"varint,16,opt,name=PowerLineMax,proto3" json:"PowerLineMax,omitempty"` // 能量值上限 + RefreshTimes int64 `protobuf:"varint,17,opt,name=RefreshTimes,proto3" json:"RefreshTimes,omitempty"` // 刷新次数 +} + +func (x *PushCoinPlayerData) Reset() { + *x = PushCoinPlayerData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushCoinPlayerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushCoinPlayerData) ProtoMessage() {} + +func (x *PushCoinPlayerData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 PushCoinPlayerData.ProtoReflect.Descriptor instead. +func (*PushCoinPlayerData) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{4} +} + +func (x *PushCoinPlayerData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PushCoinPlayerData) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *PushCoinPlayerData) GetHead() int32 { + if x != nil { + return x.Head + } + return 0 +} + +func (x *PushCoinPlayerData) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *PushCoinPlayerData) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +func (x *PushCoinPlayerData) GetFlag() int32 { + if x != nil { + return x.Flag + } + return 0 +} + +func (x *PushCoinPlayerData) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} + +func (x *PushCoinPlayerData) GetVIP() int32 { + if x != nil { + return x.VIP + } + return 0 +} + +func (x *PushCoinPlayerData) GetRoleId() int32 { + if x != nil { + return x.RoleId + } + return 0 +} + +func (x *PushCoinPlayerData) GetLevel() int64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *PushCoinPlayerData) GetExp() int64 { + if x != nil { + return x.Exp + } + return 0 +} + +func (x *PushCoinPlayerData) GetSkinId() int32 { + if x != nil { + return x.SkinId + } + return 0 +} + +func (x *PushCoinPlayerData) GetShakeTimes() int32 { + if x != nil { + return x.ShakeTimes + } + return 0 +} + +func (x *PushCoinPlayerData) GetBaseCoin() int64 { + if x != nil { + return x.BaseCoin + } + return 0 +} + +func (x *PushCoinPlayerData) GetPowerLine() int64 { + if x != nil { + return x.PowerLine + } + return 0 +} + +func (x *PushCoinPlayerData) GetPowerLineMax() int64 { + if x != nil { + return x.PowerLineMax + } + return 0 +} + +func (x *PushCoinPlayerData) GetRefreshTimes() int64 { + if x != nil { + return x.RefreshTimes + } + return 0 +} + +//房间状态 +//PACKET_SCPushCoinRoomState +type SCPushCoinRoomState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + SubState int32 `protobuf:"varint,2,opt,name=SubState,proto3" json:"SubState,omitempty"` //房间当前子状态 + Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //状态参数 +} + +func (x *SCPushCoinRoomState) Reset() { + *x = SCPushCoinRoomState{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPushCoinRoomState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPushCoinRoomState) ProtoMessage() {} + +func (x *SCPushCoinRoomState) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 SCPushCoinRoomState.ProtoReflect.Descriptor instead. +func (*SCPushCoinRoomState) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{5} +} + +func (x *SCPushCoinRoomState) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCPushCoinRoomState) GetSubState() int32 { + if x != nil { + return x.SubState + } + return 0 +} + +func (x *SCPushCoinRoomState) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +//玩家操作 +//PACKET_CSPushCoinPlayerOp +type CSPushCoinPlayerOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode OpCodes `protobuf:"varint,1,opt,name=OpCode,proto3,enum=pushcoin.OpCodes" json:"OpCode,omitempty"` + OpParam []int64 `protobuf:"varint,2,rep,packed,name=OpParam,proto3" json:"OpParam,omitempty"` +} + +func (x *CSPushCoinPlayerOp) Reset() { + *x = CSPushCoinPlayerOp{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPushCoinPlayerOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPushCoinPlayerOp) ProtoMessage() {} + +func (x *CSPushCoinPlayerOp) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 CSPushCoinPlayerOp.ProtoReflect.Descriptor instead. +func (*CSPushCoinPlayerOp) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{6} +} + +func (x *CSPushCoinPlayerOp) GetOpCode() OpCodes { + if x != nil { + return x.OpCode + } + return OpCodes_OP_Zero +} + +func (x *CSPushCoinPlayerOp) GetOpParam() []int64 { + if x != nil { + return x.OpParam + } + return nil +} + +//PACKET_SCPushCoinPlayerOp +type SCPushCoinPlayerOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=pushcoin.OpResultCode" json:"OpRetCode,omitempty"` + OpCode OpCodes `protobuf:"varint,2,opt,name=OpCode,proto3,enum=pushcoin.OpCodes" json:"OpCode,omitempty"` + Exchange *ExchangeInfo `protobuf:"bytes,3,opt,name=Exchange,proto3" json:"Exchange,omitempty"` // 兑换信息,加到背包 + Draw *DrawInfo `protobuf:"bytes,4,opt,name=Draw,proto3" json:"Draw,omitempty"` // 抽奖信息,掉落到桌面 +} + +func (x *SCPushCoinPlayerOp) Reset() { + *x = SCPushCoinPlayerOp{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_pushcoin_pushcoin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPushCoinPlayerOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPushCoinPlayerOp) ProtoMessage() {} + +func (x *SCPushCoinPlayerOp) ProtoReflect() protoreflect.Message { + mi := &file_protocol_pushcoin_pushcoin_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 SCPushCoinPlayerOp.ProtoReflect.Descriptor instead. +func (*SCPushCoinPlayerOp) Descriptor() ([]byte, []int) { + return file_protocol_pushcoin_pushcoin_proto_rawDescGZIP(), []int{7} +} + +func (x *SCPushCoinPlayerOp) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Success +} + +func (x *SCPushCoinPlayerOp) GetOpCode() OpCodes { + if x != nil { + return x.OpCode + } + return OpCodes_OP_Zero +} + +func (x *SCPushCoinPlayerOp) GetExchange() *ExchangeInfo { + if x != nil { + return x.Exchange + } + return nil +} + +func (x *SCPushCoinPlayerOp) GetDraw() *DrawInfo { + if x != nil { + return x.Draw + } + return nil +} + +var File_protocol_pushcoin_pushcoin_proto protoreflect.FileDescriptor + +var file_protocol_pushcoin_pushcoin_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x63, + 0x6f, 0x69, 0x6e, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x08, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x22, 0xe6, 0x02, 0x0a, + 0x12, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x63, + 0x6f, 0x69, 0x6e, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, + 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x44, + 0x72, 0x61, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x44, 0x72, 0x61, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x42, + 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x42, 0x65, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, + 0x4e, 0x75, 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, + 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x47, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, + 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xae, 0x03, 0x0a, 0x12, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x56, + 0x49, 0x50, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, + 0x78, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, + 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, + 0x4d, 0x61, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x43, 0x50, 0x75, 0x73, + 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x59, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x75, + 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x29, + 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x73, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x22, 0xd1, 0x01, 0x0a, 0x12, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, + 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x29, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x11, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x73, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x26, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x2a, 0xad, 0x01, 0x0a, 0x10, 0x50, 0x75, 0x73, 0x68, + 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, + 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xa6, 0x2c, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x10, 0xa7, 0x2c, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4f, 0x70, 0x10, 0xa8, 0x2c, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4f, 0x70, 0x10, 0xa9, 0x2c, 0x2a, 0x6b, 0x0a, 0x07, 0x4f, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x5a, 0x65, 0x72, 0x6f, 0x10, 0x00, 0x12, + 0x0a, 0x0a, 0x06, 0x4f, 0x50, 0x5f, 0x42, 0x65, 0x74, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, + 0x50, 0x5f, 0x47, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x5f, 0x53, + 0x68, 0x61, 0x6b, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x5f, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x5f, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x44, 0x72, + 0x61, 0x77, 0x10, 0x06, 0x2a, 0x30, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, + 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protocol_pushcoin_pushcoin_proto_rawDescOnce sync.Once + file_protocol_pushcoin_pushcoin_proto_rawDescData = file_protocol_pushcoin_pushcoin_proto_rawDesc +) + +func file_protocol_pushcoin_pushcoin_proto_rawDescGZIP() []byte { + file_protocol_pushcoin_pushcoin_proto_rawDescOnce.Do(func() { + file_protocol_pushcoin_pushcoin_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocol_pushcoin_pushcoin_proto_rawDescData) + }) + return file_protocol_pushcoin_pushcoin_proto_rawDescData +} + +var file_protocol_pushcoin_pushcoin_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_protocol_pushcoin_pushcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_protocol_pushcoin_pushcoin_proto_goTypes = []interface{}{ + (PushCoinPacketID)(0), // 0: pushcoin.PushCoinPacketID + (OpCodes)(0), // 1: pushcoin.OpCodes + (OpResultCode)(0), // 2: pushcoin.OpResultCode + (*SCPushCoinRoomInfo)(nil), // 3: pushcoin.SCPushCoinRoomInfo + (*ItemInfo)(nil), // 4: pushcoin.ItemInfo + (*ExchangeInfo)(nil), // 5: pushcoin.ExchangeInfo + (*DrawInfo)(nil), // 6: pushcoin.DrawInfo + (*PushCoinPlayerData)(nil), // 7: pushcoin.PushCoinPlayerData + (*SCPushCoinRoomState)(nil), // 8: pushcoin.SCPushCoinRoomState + (*CSPushCoinPlayerOp)(nil), // 9: pushcoin.CSPushCoinPlayerOp + (*SCPushCoinPlayerOp)(nil), // 10: pushcoin.SCPushCoinPlayerOp +} +var file_protocol_pushcoin_pushcoin_proto_depIdxs = []int32{ + 7, // 0: pushcoin.SCPushCoinRoomInfo.Players:type_name -> pushcoin.PushCoinPlayerData + 5, // 1: pushcoin.SCPushCoinRoomInfo.ExchangeList:type_name -> pushcoin.ExchangeInfo + 6, // 2: pushcoin.SCPushCoinRoomInfo.DrawList:type_name -> pushcoin.DrawInfo + 4, // 3: pushcoin.ExchangeInfo.Cost:type_name -> pushcoin.ItemInfo + 4, // 4: pushcoin.ExchangeInfo.Gain:type_name -> pushcoin.ItemInfo + 1, // 5: pushcoin.CSPushCoinPlayerOp.OpCode:type_name -> pushcoin.OpCodes + 2, // 6: pushcoin.SCPushCoinPlayerOp.OpRetCode:type_name -> pushcoin.OpResultCode + 1, // 7: pushcoin.SCPushCoinPlayerOp.OpCode:type_name -> pushcoin.OpCodes + 5, // 8: pushcoin.SCPushCoinPlayerOp.Exchange:type_name -> pushcoin.ExchangeInfo + 6, // 9: pushcoin.SCPushCoinPlayerOp.Draw:type_name -> pushcoin.DrawInfo + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_protocol_pushcoin_pushcoin_proto_init() } +func file_protocol_pushcoin_pushcoin_proto_init() { + if File_protocol_pushcoin_pushcoin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protocol_pushcoin_pushcoin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinRoomInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ItemInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DrawInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushCoinPlayerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinRoomState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPushCoinPlayerOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_pushcoin_pushcoin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinPlayerOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protocol_pushcoin_pushcoin_proto_rawDesc, + NumEnums: 3, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protocol_pushcoin_pushcoin_proto_goTypes, + DependencyIndexes: file_protocol_pushcoin_pushcoin_proto_depIdxs, + EnumInfos: file_protocol_pushcoin_pushcoin_proto_enumTypes, + MessageInfos: file_protocol_pushcoin_pushcoin_proto_msgTypes, + }.Build() + File_protocol_pushcoin_pushcoin_proto = out.File + file_protocol_pushcoin_pushcoin_proto_rawDesc = nil + file_protocol_pushcoin_pushcoin_proto_goTypes = nil + file_protocol_pushcoin_pushcoin_proto_depIdxs = nil +} diff --git a/protocol/pushcoin/pushcoin.proto b/protocol/pushcoin/pushcoin.proto new file mode 100644 index 0000000..799e21f --- /dev/null +++ b/protocol/pushcoin/pushcoin.proto @@ -0,0 +1,104 @@ +syntax = "proto3"; +package pushcoin; +option go_package = "mongo.games.com/game/protocol/pushcoin"; + +// 5670~5679 +enum PushCoinPacketID { + PACKET_PushCoin_ZERO = 0;// 弃用消息号 + PACKET_SCPushCoinRoomInfo = 5670; // 房间信息 + PACKET_SCPushCoinRoomState = 5671; // 房间状态 + PACKET_CSPushCoinPlayerOp = 5672; // 玩家操作 + PACKET_SCPushCoinPlayerOp = 5673; // 玩家操作返回 +} + +//房间信息 +//PACKET_SCPushCoinRoomInfo +message SCPushCoinRoomInfo { + int32 RoomId = 1; //房间id + int32 GameId = 2; //游戏id + int32 RoomMode = 3; //游戏模式 + repeated int32 Params = 4; //规则参数 + int32 State = 5; //房间当前状态 + int32 TimeOut = 6; //等待剩余时间 单位:秒 + repeated PushCoinPlayerData Players = 7; //房间内的玩家信息 + repeated ExchangeInfo ExchangeList = 8; //兑换信息 + repeated DrawInfo DrawList = 9; //抽奖信息 + repeated int64 BetList = 10; //下注金额列表 +} + +message ItemInfo{ + int32 ItemId = 1; //道具id + int32 ItemNum = 2; //道具数量 +} + +message ExchangeInfo{ + int32 Id = 1; //兑换id + repeated ItemInfo Cost = 2; //消耗道具 + repeated ItemInfo Gain = 3; //获得道具 + int32 ShakeTimes = 4; //获得震动次数 +} + +message DrawInfo{ + int32 Id = 1; //抽奖id + int32 ItemId = 2; //道具id + int32 ItemNum = 3; //道具数量 + int64 Coin = 4; //价值 +} + +message PushCoinPlayerData { + string Name = 1; //名字 + int32 SnId = 2; //账号 + int32 Head = 3; //头像 + int32 Sex = 4; //性别 + int64 Coin = 5; //金币 + int32 Flag = 6; //二进制标记 第一位:是否掉线(0:在线 1:掉线) 第二位:是否准备(0:未准备 1:已准备) + repeated string Params = 7; //其他数据 如:ip 等 + int32 VIP = 8; + int32 RoleId = 9; //使用中的角色id + int64 Level = 10; //玩家等级 + int64 Exp = 11; //玩家经验 + int32 SkinId = 12; //皮肤id + int32 ShakeTimes = 13; //可震动次数 + int64 BaseCoin = 14; //当前底分(单次投币金额) + int64 PowerLine = 15; // 当前能量值 + int64 PowerLineMax = 16; // 能量值上限 + int64 RefreshTimes = 17; // 刷新次数 +} + +//房间状态 +//PACKET_SCPushCoinRoomState +message SCPushCoinRoomState { + int32 State = 1; //房间当前状态 + int32 SubState = 2; //房间当前子状态 + repeated int32 Params = 3; //状态参数 +} + +//玩家操作 +//PACKET_CSPushCoinPlayerOp +message CSPushCoinPlayerOp { + OpCodes OpCode = 1; + repeated int64 OpParam = 2; +} + +enum OpCodes { + OP_Zero = 0; + OP_Bet = 1; // 下注 [下注金额] + OP_Gain = 2; // 得分 [得分金额] + OP_Shake = 3; // 震动 [消耗次数] + OP_Refresh = 4; // 刷新 [桌面金额] + OP_Exchange = 5; // 兑换 [兑换id] + OP_Draw = 6; // 抽奖 [抽奖id] +} + +enum OpResultCode { + OPRC_Success = 0; //成功 + OPRC_Error = 1; //失败 +} + +//PACKET_SCPushCoinPlayerOp +message SCPushCoinPlayerOp { + OpResultCode OpRetCode = 1; + OpCodes OpCode = 2; + ExchangeInfo Exchange = 3; // 兑换信息,加到背包 + DrawInfo Draw = 4; // 抽奖信息,掉落到桌面 +} \ No newline at end of file diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index 2bc12a4..e8e5b46 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -55,6 +55,9 @@ const ( //年兽排行榜 Rank_PACKET_RANK_CSNian Rank = 10019 Rank_PACKET_RANK_SCNian Rank = 10020 + // 红包抽奖记录 + Rank_PACKET_CSRedPacketHistory Rank = 10021 + Rank_PACKET_SCRedPacketHistory Rank = 10022 ) // Enum value maps for Rank. @@ -82,30 +85,34 @@ var ( 10018: "PACKET_SCLotteryHistory", 10019: "PACKET_RANK_CSNian", 10020: "PACKET_RANK_SCNian", + 10021: "PACKET_CSRedPacketHistory", + 10022: "PACKET_SCRedPacketHistory", } Rank_value = map[string]int32{ - "PACKET_RANK_ZERO": 0, - "PACKET_RANK_CSRankMatch": 10000, - "PACKET_RANK_SCRankMatch": 10001, - "PACKET_RANK_CSCoin": 10002, - "PACKET_RANK_SCCoin": 10003, - "PACKET_RANK_CSInvite": 10004, - "PACKET_RANK_SCInvite": 10005, - "PACKET_CSInviteLog": 10006, - "PACKET_SCInviteLog": 10007, - "PACKET_RANK_CSWinCoin": 10008, - "PACKET_RANK_SCWinCoin": 10009, - "PACKET_RANK_CSLevel": 10010, - "PACKET_RANK_SCLevel": 10011, - "PACKET_RANK_CSPermit": 10012, - "PACKET_RANK_SCPermit": 10013, - "PACKET_CSRoomAward": 10014, - "PACKET_SCRoomAward": 10015, - "PACKET_SCRoomAwardOne": 10016, - "PACKET_CSLotteryHistory": 10017, - "PACKET_SCLotteryHistory": 10018, - "PACKET_RANK_CSNian": 10019, - "PACKET_RANK_SCNian": 10020, + "PACKET_RANK_ZERO": 0, + "PACKET_RANK_CSRankMatch": 10000, + "PACKET_RANK_SCRankMatch": 10001, + "PACKET_RANK_CSCoin": 10002, + "PACKET_RANK_SCCoin": 10003, + "PACKET_RANK_CSInvite": 10004, + "PACKET_RANK_SCInvite": 10005, + "PACKET_CSInviteLog": 10006, + "PACKET_SCInviteLog": 10007, + "PACKET_RANK_CSWinCoin": 10008, + "PACKET_RANK_SCWinCoin": 10009, + "PACKET_RANK_CSLevel": 10010, + "PACKET_RANK_SCLevel": 10011, + "PACKET_RANK_CSPermit": 10012, + "PACKET_RANK_SCPermit": 10013, + "PACKET_CSRoomAward": 10014, + "PACKET_SCRoomAward": 10015, + "PACKET_SCRoomAwardOne": 10016, + "PACKET_CSLotteryHistory": 10017, + "PACKET_SCLotteryHistory": 10018, + "PACKET_RANK_CSNian": 10019, + "PACKET_RANK_SCNian": 10020, + "PACKET_CSRedPacketHistory": 10021, + "PACKET_SCRedPacketHistory": 10022, } ) @@ -2569,6 +2576,165 @@ func (x *SCNian) GetTypeId() int32 { return 0 } +// 红包抽奖记录 +// PACKET_CSRedPacketHistory +type CSRedPacketHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 红包活动id +} + +func (x *CSRedPacketHistory) Reset() { + *x = CSRedPacketHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSRedPacketHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSRedPacketHistory) ProtoMessage() {} + +func (x *CSRedPacketHistory) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSRedPacketHistory.ProtoReflect.Descriptor instead. +func (*CSRedPacketHistory) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{33} +} + +func (x *CSRedPacketHistory) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type RedPacketHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间戳 + ItemId int32 `protobuf:"varint,5,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id + ItemNum int64 `protobuf:"varint,6,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` // 道具数量 +} + +func (x *RedPacketHistory) Reset() { + *x = RedPacketHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedPacketHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedPacketHistory) ProtoMessage() {} + +func (x *RedPacketHistory) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedPacketHistory.ProtoReflect.Descriptor instead. +func (*RedPacketHistory) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{34} +} + +func (x *RedPacketHistory) GetTs() int64 { + if x != nil { + return x.Ts + } + return 0 +} + +func (x *RedPacketHistory) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + +func (x *RedPacketHistory) GetItemNum() int64 { + if x != nil { + return x.ItemNum + } + return 0 +} + +type SCRedPacketHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*RedPacketHistory `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` +} + +func (x *SCRedPacketHistory) Reset() { + *x = SCRedPacketHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCRedPacketHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCRedPacketHistory) ProtoMessage() {} + +func (x *SCRedPacketHistory) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCRedPacketHistory.ProtoReflect.Descriptor instead. +func (*SCRedPacketHistory) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{35} +} + +func (x *SCRedPacketHistory) GetList() []*RedPacketHistory { + if x != nil { + return x.List + } + return nil +} + var File_protocol_rank_rank_proto protoreflect.FileDescriptor var file_protocol_rank_rank_proto_rawDesc = []byte{ @@ -2805,56 +2971,72 @@ var file_protocol_rank_rank_proto_rawDesc = []byte{ 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x2a, 0xd0, 0x04, 0x0a, 0x04, 0x52, - 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, - 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, - 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, - 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, - 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, - 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, - 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, - 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, - 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, - 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, - 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, - 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, - 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, - 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x10, 0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, - 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x2a, 0x8d, 0x01, - 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, - 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, - 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, - 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, - 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x12, 0x43, 0x53, + 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x54, 0x0a, 0x10, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, + 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x40, 0x0a, 0x12, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x04, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x61, 0x6e, + 0x6b, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x90, 0x05, 0x0a, 0x04, 0x52, 0x61, 0x6e, + 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, + 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, + 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, 0x6f, + 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, 0x4e, + 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, + 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, + 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, 0x0a, + 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x57, + 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, 0x6f, + 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, 0x12, + 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, + 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, + 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, 0x4e, 0x12, + 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9f, + 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, + 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x10, + 0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, + 0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa5, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa6, 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, + 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, + 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, + 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, + 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2870,7 +3052,7 @@ func file_protocol_rank_rank_proto_rawDescGZIP() []byte { } var file_protocol_rank_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_protocol_rank_rank_proto_goTypes = []interface{}{ (Rank)(0), // 0: rank.Rank (RankInvite)(0), // 1: rank.RankInvite @@ -2907,6 +3089,9 @@ var file_protocol_rank_rank_proto_goTypes = []interface{}{ (*CSNian)(nil), // 32: rank.CSNian (*NianRankData)(nil), // 33: rank.NianRankData (*SCNian)(nil), // 34: rank.SCNian + (*CSRedPacketHistory)(nil), // 35: rank.CSRedPacketHistory + (*RedPacketHistory)(nil), // 36: rank.RedPacketHistory + (*SCRedPacketHistory)(nil), // 37: rank.SCRedPacketHistory } var file_protocol_rank_rank_proto_depIdxs = []int32{ 3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank @@ -2929,11 +3114,12 @@ var file_protocol_rank_rank_proto_depIdxs = []int32{ 30, // 17: rank.SCLotteryHistory.List:type_name -> rank.LotteryHistory 33, // 18: rank.SCNian.Ranks:type_name -> rank.NianRankData 33, // 19: rank.SCNian.Me:type_name -> rank.NianRankData - 20, // [20:20] is the sub-list for method output_type - 20, // [20:20] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 36, // 20: rank.SCRedPacketHistory.List:type_name -> rank.RedPacketHistory + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_protocol_rank_rank_proto_init() } @@ -3338,6 +3524,42 @@ func file_protocol_rank_rank_proto_init() { return nil } } + file_protocol_rank_rank_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSRedPacketHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedPacketHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCRedPacketHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3345,7 +3567,7 @@ func file_protocol_rank_rank_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_rank_rank_proto_rawDesc, NumEnums: 2, - NumMessages: 33, + NumMessages: 36, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index 2bd7790..3ddd14e 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -36,6 +36,9 @@ enum Rank{ //年兽排行榜 PACKET_RANK_CSNian = 10019; PACKET_RANK_SCNian = 10020; + // 红包抽奖记录 + PACKET_CSRedPacketHistory = 10021; + PACKET_SCRedPacketHistory = 10022; } // 排位榜 @@ -299,3 +302,17 @@ message SCNian{ int32 Total = 5; // 总数量 int32 TypeId = 6; } + +// 红包抽奖记录 +// PACKET_CSRedPacketHistory +message CSRedPacketHistory{ + int64 Id = 1; // 红包活动id +} +message RedPacketHistory{ + int64 Ts = 1; // 时间戳 + int32 ItemId = 5; // 道具id + int64 ItemNum = 6; // 道具数量 +} +message SCRedPacketHistory{ + repeated RedPacketHistory List = 1; +} \ No newline at end of file diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index e91e390..d62b55b 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -23,6 +23,124 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type DB_ACTPushCoin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Rate int32 `protobuf:"varint,2,opt,name=Rate,proto3" json:"Rate,omitempty"` + Gain map[int64]int64 `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Value int64 `protobuf:"varint,4,opt,name=Value,proto3" json:"Value,omitempty"` +} + +func (x *DB_ACTPushCoin) Reset() { + *x = DB_ACTPushCoin{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_server_pbdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_ACTPushCoin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_ACTPushCoin) ProtoMessage() {} + +func (x *DB_ACTPushCoin) ProtoReflect() protoreflect.Message { + mi := &file_protocol_server_pbdata_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 DB_ACTPushCoin.ProtoReflect.Descriptor instead. +func (*DB_ACTPushCoin) Descriptor() ([]byte, []int) { + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{0} +} + +func (x *DB_ACTPushCoin) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_ACTPushCoin) GetRate() int32 { + if x != nil { + return x.Rate + } + return 0 +} + +func (x *DB_ACTPushCoin) GetGain() map[int64]int64 { + if x != nil { + return x.Gain + } + return nil +} + +func (x *DB_ACTPushCoin) GetValue() int64 { + if x != nil { + return x.Value + } + return 0 +} + +type DB_ACTPushCoinArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_ACTPushCoin `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_ACTPushCoinArray) Reset() { + *x = DB_ACTPushCoinArray{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_server_pbdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_ACTPushCoinArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_ACTPushCoinArray) ProtoMessage() {} + +func (x *DB_ACTPushCoinArray) ProtoReflect() protoreflect.Message { + mi := &file_protocol_server_pbdata_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 DB_ACTPushCoinArray.ProtoReflect.Descriptor instead. +func (*DB_ACTPushCoinArray) Descriptor() ([]byte, []int) { + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{1} +} + +func (x *DB_ACTPushCoinArray) GetArr() []*DB_ACTPushCoin { + if x != nil { + return x.Arr + } + return nil +} + type DB_ActSign struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -38,7 +156,7 @@ type DB_ActSign struct { func (x *DB_ActSign) Reset() { *x = DB_ActSign{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[0] + mi := &file_protocol_server_pbdata_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51,7 +169,7 @@ func (x *DB_ActSign) String() string { func (*DB_ActSign) ProtoMessage() {} func (x *DB_ActSign) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[0] + mi := &file_protocol_server_pbdata_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64,7 +182,7 @@ func (x *DB_ActSign) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ActSign.ProtoReflect.Descriptor instead. func (*DB_ActSign) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{0} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{2} } func (x *DB_ActSign) GetId() int32 { @@ -113,7 +231,7 @@ type DB_ActSignArray struct { func (x *DB_ActSignArray) Reset() { *x = DB_ActSignArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[1] + mi := &file_protocol_server_pbdata_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -126,7 +244,7 @@ func (x *DB_ActSignArray) String() string { func (*DB_ActSignArray) ProtoMessage() {} func (x *DB_ActSignArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[1] + mi := &file_protocol_server_pbdata_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -139,7 +257,7 @@ func (x *DB_ActSignArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ActSignArray.ProtoReflect.Descriptor instead. func (*DB_ActSignArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{1} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{3} } func (x *DB_ActSignArray) GetArr() []*DB_ActSign { @@ -170,7 +288,7 @@ type DB_Activity1 struct { func (x *DB_Activity1) Reset() { *x = DB_Activity1{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[2] + mi := &file_protocol_server_pbdata_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -183,7 +301,7 @@ func (x *DB_Activity1) String() string { func (*DB_Activity1) ProtoMessage() {} func (x *DB_Activity1) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[2] + mi := &file_protocol_server_pbdata_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -196,7 +314,7 @@ func (x *DB_Activity1) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Activity1.ProtoReflect.Descriptor instead. func (*DB_Activity1) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{2} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{4} } func (x *DB_Activity1) GetId() int32 { @@ -287,7 +405,7 @@ type DB_Activity1Array struct { func (x *DB_Activity1Array) Reset() { *x = DB_Activity1Array{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[3] + mi := &file_protocol_server_pbdata_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -300,7 +418,7 @@ func (x *DB_Activity1Array) String() string { func (*DB_Activity1Array) ProtoMessage() {} func (x *DB_Activity1Array) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[3] + mi := &file_protocol_server_pbdata_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -313,7 +431,7 @@ func (x *DB_Activity1Array) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Activity1Array.ProtoReflect.Descriptor instead. func (*DB_Activity1Array) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{3} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{5} } func (x *DB_Activity1Array) GetArr() []*DB_Activity1 { @@ -336,7 +454,7 @@ type DB_AnimalColor struct { func (x *DB_AnimalColor) Reset() { *x = DB_AnimalColor{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[4] + mi := &file_protocol_server_pbdata_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -349,7 +467,7 @@ func (x *DB_AnimalColor) String() string { func (*DB_AnimalColor) ProtoMessage() {} func (x *DB_AnimalColor) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[4] + mi := &file_protocol_server_pbdata_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -362,7 +480,7 @@ func (x *DB_AnimalColor) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_AnimalColor.ProtoReflect.Descriptor instead. func (*DB_AnimalColor) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{4} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{6} } func (x *DB_AnimalColor) GetId() int32 { @@ -397,7 +515,7 @@ type DB_AnimalColorArray struct { func (x *DB_AnimalColorArray) Reset() { *x = DB_AnimalColorArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[5] + mi := &file_protocol_server_pbdata_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -410,7 +528,7 @@ func (x *DB_AnimalColorArray) String() string { func (*DB_AnimalColorArray) ProtoMessage() {} func (x *DB_AnimalColorArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[5] + mi := &file_protocol_server_pbdata_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -423,7 +541,7 @@ func (x *DB_AnimalColorArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_AnimalColorArray.ProtoReflect.Descriptor instead. func (*DB_AnimalColorArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{5} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{7} } func (x *DB_AnimalColorArray) GetArr() []*DB_AnimalColor { @@ -447,7 +565,7 @@ type DB_ArtilleryRate struct { func (x *DB_ArtilleryRate) Reset() { *x = DB_ArtilleryRate{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[6] + mi := &file_protocol_server_pbdata_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -460,7 +578,7 @@ func (x *DB_ArtilleryRate) String() string { func (*DB_ArtilleryRate) ProtoMessage() {} func (x *DB_ArtilleryRate) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[6] + mi := &file_protocol_server_pbdata_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -473,7 +591,7 @@ func (x *DB_ArtilleryRate) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ArtilleryRate.ProtoReflect.Descriptor instead. func (*DB_ArtilleryRate) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{6} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{8} } func (x *DB_ArtilleryRate) GetId() int32 { @@ -515,7 +633,7 @@ type DB_ArtilleryRateArray struct { func (x *DB_ArtilleryRateArray) Reset() { *x = DB_ArtilleryRateArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[7] + mi := &file_protocol_server_pbdata_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -528,7 +646,7 @@ func (x *DB_ArtilleryRateArray) String() string { func (*DB_ArtilleryRateArray) ProtoMessage() {} func (x *DB_ArtilleryRateArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[7] + mi := &file_protocol_server_pbdata_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -541,7 +659,7 @@ func (x *DB_ArtilleryRateArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ArtilleryRateArray.ProtoReflect.Descriptor instead. func (*DB_ArtilleryRateArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{7} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{9} } func (x *DB_ArtilleryRateArray) GetArr() []*DB_ArtilleryRate { @@ -581,7 +699,7 @@ type DB_ArtillerySkin struct { func (x *DB_ArtillerySkin) Reset() { *x = DB_ArtillerySkin{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[8] + mi := &file_protocol_server_pbdata_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -594,7 +712,7 @@ func (x *DB_ArtillerySkin) String() string { func (*DB_ArtillerySkin) ProtoMessage() {} func (x *DB_ArtillerySkin) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[8] + mi := &file_protocol_server_pbdata_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -607,7 +725,7 @@ func (x *DB_ArtillerySkin) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ArtillerySkin.ProtoReflect.Descriptor instead. func (*DB_ArtillerySkin) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{8} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{10} } func (x *DB_ArtillerySkin) GetId() int32 { @@ -761,7 +879,7 @@ type DB_ArtillerySkinArray struct { func (x *DB_ArtillerySkinArray) Reset() { *x = DB_ArtillerySkinArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[9] + mi := &file_protocol_server_pbdata_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -774,7 +892,7 @@ func (x *DB_ArtillerySkinArray) String() string { func (*DB_ArtillerySkinArray) ProtoMessage() {} func (x *DB_ArtillerySkinArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[9] + mi := &file_protocol_server_pbdata_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -787,7 +905,7 @@ func (x *DB_ArtillerySkinArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ArtillerySkinArray.ProtoReflect.Descriptor instead. func (*DB_ArtillerySkinArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{9} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{11} } func (x *DB_ArtillerySkinArray) GetArr() []*DB_ArtillerySkin { @@ -810,7 +928,7 @@ type DB_BlackWhite struct { func (x *DB_BlackWhite) Reset() { *x = DB_BlackWhite{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[10] + mi := &file_protocol_server_pbdata_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -823,7 +941,7 @@ func (x *DB_BlackWhite) String() string { func (*DB_BlackWhite) ProtoMessage() {} func (x *DB_BlackWhite) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[10] + mi := &file_protocol_server_pbdata_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -836,7 +954,7 @@ func (x *DB_BlackWhite) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_BlackWhite.ProtoReflect.Descriptor instead. func (*DB_BlackWhite) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{10} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{12} } func (x *DB_BlackWhite) GetId() int32 { @@ -871,7 +989,7 @@ type DB_BlackWhiteArray struct { func (x *DB_BlackWhiteArray) Reset() { *x = DB_BlackWhiteArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[11] + mi := &file_protocol_server_pbdata_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -884,7 +1002,7 @@ func (x *DB_BlackWhiteArray) String() string { func (*DB_BlackWhiteArray) ProtoMessage() {} func (x *DB_BlackWhiteArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[11] + mi := &file_protocol_server_pbdata_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -897,7 +1015,7 @@ func (x *DB_BlackWhiteArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_BlackWhiteArray.ProtoReflect.Descriptor instead. func (*DB_BlackWhiteArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{11} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{13} } func (x *DB_BlackWhiteArray) GetArr() []*DB_BlackWhite { @@ -934,7 +1052,7 @@ type DB_CardsJD struct { func (x *DB_CardsJD) Reset() { *x = DB_CardsJD{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[12] + mi := &file_protocol_server_pbdata_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -947,7 +1065,7 @@ func (x *DB_CardsJD) String() string { func (*DB_CardsJD) ProtoMessage() {} func (x *DB_CardsJD) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[12] + mi := &file_protocol_server_pbdata_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -960,7 +1078,7 @@ func (x *DB_CardsJD) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CardsJD.ProtoReflect.Descriptor instead. func (*DB_CardsJD) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{12} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{14} } func (x *DB_CardsJD) GetId() int32 { @@ -1093,7 +1211,7 @@ type DB_CardsJDArray struct { func (x *DB_CardsJDArray) Reset() { *x = DB_CardsJDArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[13] + mi := &file_protocol_server_pbdata_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1106,7 +1224,7 @@ func (x *DB_CardsJDArray) String() string { func (*DB_CardsJDArray) ProtoMessage() {} func (x *DB_CardsJDArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[13] + mi := &file_protocol_server_pbdata_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1119,7 +1237,7 @@ func (x *DB_CardsJDArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CardsJDArray.ProtoReflect.Descriptor instead. func (*DB_CardsJDArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{13} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{15} } func (x *DB_CardsJDArray) GetArr() []*DB_CardsJD { @@ -1156,7 +1274,7 @@ type DB_CardsYuLe struct { func (x *DB_CardsYuLe) Reset() { *x = DB_CardsYuLe{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[14] + mi := &file_protocol_server_pbdata_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1169,7 +1287,7 @@ func (x *DB_CardsYuLe) String() string { func (*DB_CardsYuLe) ProtoMessage() {} func (x *DB_CardsYuLe) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[14] + mi := &file_protocol_server_pbdata_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1182,7 +1300,7 @@ func (x *DB_CardsYuLe) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CardsYuLe.ProtoReflect.Descriptor instead. func (*DB_CardsYuLe) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{14} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{16} } func (x *DB_CardsYuLe) GetId() int32 { @@ -1315,7 +1433,7 @@ type DB_CardsYuLeArray struct { func (x *DB_CardsYuLeArray) Reset() { *x = DB_CardsYuLeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[15] + mi := &file_protocol_server_pbdata_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1328,7 +1446,7 @@ func (x *DB_CardsYuLeArray) String() string { func (*DB_CardsYuLeArray) ProtoMessage() {} func (x *DB_CardsYuLeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[15] + mi := &file_protocol_server_pbdata_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1341,7 +1459,7 @@ func (x *DB_CardsYuLeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CardsYuLeArray.ProtoReflect.Descriptor instead. func (*DB_CardsYuLeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{15} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{17} } func (x *DB_CardsYuLeArray) GetArr() []*DB_CardsYuLe { @@ -1368,7 +1486,7 @@ type DB_ChessBilledRules struct { func (x *DB_ChessBilledRules) Reset() { *x = DB_ChessBilledRules{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[16] + mi := &file_protocol_server_pbdata_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1381,7 +1499,7 @@ func (x *DB_ChessBilledRules) String() string { func (*DB_ChessBilledRules) ProtoMessage() {} func (x *DB_ChessBilledRules) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[16] + mi := &file_protocol_server_pbdata_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1394,7 +1512,7 @@ func (x *DB_ChessBilledRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessBilledRules.ProtoReflect.Descriptor instead. func (*DB_ChessBilledRules) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{16} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{18} } func (x *DB_ChessBilledRules) GetId() int32 { @@ -1457,7 +1575,7 @@ type DB_ChessBilledRulesArray struct { func (x *DB_ChessBilledRulesArray) Reset() { *x = DB_ChessBilledRulesArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[17] + mi := &file_protocol_server_pbdata_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1470,7 +1588,7 @@ func (x *DB_ChessBilledRulesArray) String() string { func (*DB_ChessBilledRulesArray) ProtoMessage() {} func (x *DB_ChessBilledRulesArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[17] + mi := &file_protocol_server_pbdata_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1483,7 +1601,7 @@ func (x *DB_ChessBilledRulesArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessBilledRulesArray.ProtoReflect.Descriptor instead. func (*DB_ChessBilledRulesArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{17} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{19} } func (x *DB_ChessBilledRulesArray) GetArr() []*DB_ChessBilledRules { @@ -1510,7 +1628,7 @@ type DB_ChessMatchRules struct { func (x *DB_ChessMatchRules) Reset() { *x = DB_ChessMatchRules{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[18] + mi := &file_protocol_server_pbdata_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1523,7 +1641,7 @@ func (x *DB_ChessMatchRules) String() string { func (*DB_ChessMatchRules) ProtoMessage() {} func (x *DB_ChessMatchRules) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[18] + mi := &file_protocol_server_pbdata_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1536,7 +1654,7 @@ func (x *DB_ChessMatchRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessMatchRules.ProtoReflect.Descriptor instead. func (*DB_ChessMatchRules) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{18} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{20} } func (x *DB_ChessMatchRules) GetId() int32 { @@ -1599,7 +1717,7 @@ type DB_ChessMatchRulesArray struct { func (x *DB_ChessMatchRulesArray) Reset() { *x = DB_ChessMatchRulesArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[19] + mi := &file_protocol_server_pbdata_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1612,7 +1730,7 @@ func (x *DB_ChessMatchRulesArray) String() string { func (*DB_ChessMatchRulesArray) ProtoMessage() {} func (x *DB_ChessMatchRulesArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[19] + mi := &file_protocol_server_pbdata_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1625,7 +1743,7 @@ func (x *DB_ChessMatchRulesArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessMatchRulesArray.ProtoReflect.Descriptor instead. func (*DB_ChessMatchRulesArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{19} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{21} } func (x *DB_ChessMatchRulesArray) GetArr() []*DB_ChessMatchRules { @@ -1648,7 +1766,7 @@ type DB_ChessRank struct { func (x *DB_ChessRank) Reset() { *x = DB_ChessRank{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[20] + mi := &file_protocol_server_pbdata_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1661,7 +1779,7 @@ func (x *DB_ChessRank) String() string { func (*DB_ChessRank) ProtoMessage() {} func (x *DB_ChessRank) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[20] + mi := &file_protocol_server_pbdata_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1674,7 +1792,7 @@ func (x *DB_ChessRank) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessRank.ProtoReflect.Descriptor instead. func (*DB_ChessRank) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{20} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{22} } func (x *DB_ChessRank) GetId() int32 { @@ -1709,7 +1827,7 @@ type DB_ChessRankArray struct { func (x *DB_ChessRankArray) Reset() { *x = DB_ChessRankArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[21] + mi := &file_protocol_server_pbdata_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1722,7 +1840,7 @@ func (x *DB_ChessRankArray) String() string { func (*DB_ChessRankArray) ProtoMessage() {} func (x *DB_ChessRankArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[21] + mi := &file_protocol_server_pbdata_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1735,7 +1853,7 @@ func (x *DB_ChessRankArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ChessRankArray.ProtoReflect.Descriptor instead. func (*DB_ChessRankArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{21} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{23} } func (x *DB_ChessRankArray) GetArr() []*DB_ChessRank { @@ -1759,7 +1877,7 @@ type DB_ClientVer struct { func (x *DB_ClientVer) Reset() { *x = DB_ClientVer{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[22] + mi := &file_protocol_server_pbdata_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1772,7 +1890,7 @@ func (x *DB_ClientVer) String() string { func (*DB_ClientVer) ProtoMessage() {} func (x *DB_ClientVer) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[22] + mi := &file_protocol_server_pbdata_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1785,7 +1903,7 @@ func (x *DB_ClientVer) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ClientVer.ProtoReflect.Descriptor instead. func (*DB_ClientVer) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{22} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{24} } func (x *DB_ClientVer) GetId() int32 { @@ -1827,7 +1945,7 @@ type DB_ClientVerArray struct { func (x *DB_ClientVerArray) Reset() { *x = DB_ClientVerArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[23] + mi := &file_protocol_server_pbdata_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1840,7 +1958,7 @@ func (x *DB_ClientVerArray) String() string { func (*DB_ClientVerArray) ProtoMessage() {} func (x *DB_ClientVerArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[23] + mi := &file_protocol_server_pbdata_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1853,7 +1971,7 @@ func (x *DB_ClientVerArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ClientVerArray.ProtoReflect.Descriptor instead. func (*DB_ClientVerArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{23} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{25} } func (x *DB_ClientVerArray) GetArr() []*DB_ClientVer { @@ -1876,7 +1994,7 @@ type DB_CollectBox struct { func (x *DB_CollectBox) Reset() { *x = DB_CollectBox{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[24] + mi := &file_protocol_server_pbdata_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1889,7 +2007,7 @@ func (x *DB_CollectBox) String() string { func (*DB_CollectBox) ProtoMessage() {} func (x *DB_CollectBox) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[24] + mi := &file_protocol_server_pbdata_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1902,7 +2020,7 @@ func (x *DB_CollectBox) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CollectBox.ProtoReflect.Descriptor instead. func (*DB_CollectBox) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{24} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{26} } func (x *DB_CollectBox) GetId() int32 { @@ -1937,7 +2055,7 @@ type DB_CollectBoxArray struct { func (x *DB_CollectBoxArray) Reset() { *x = DB_CollectBoxArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[25] + mi := &file_protocol_server_pbdata_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1950,7 +2068,7 @@ func (x *DB_CollectBoxArray) String() string { func (*DB_CollectBoxArray) ProtoMessage() {} func (x *DB_CollectBoxArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[25] + mi := &file_protocol_server_pbdata_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1963,7 +2081,7 @@ func (x *DB_CollectBoxArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CollectBoxArray.ProtoReflect.Descriptor instead. func (*DB_CollectBoxArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{25} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{27} } func (x *DB_CollectBoxArray) GetArr() []*DB_CollectBox { @@ -1985,7 +2103,7 @@ type DB_CollectBoxGain struct { func (x *DB_CollectBoxGain) Reset() { *x = DB_CollectBoxGain{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[26] + mi := &file_protocol_server_pbdata_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1998,7 +2116,7 @@ func (x *DB_CollectBoxGain) String() string { func (*DB_CollectBoxGain) ProtoMessage() {} func (x *DB_CollectBoxGain) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[26] + mi := &file_protocol_server_pbdata_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2011,7 +2129,7 @@ func (x *DB_CollectBoxGain) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CollectBoxGain.ProtoReflect.Descriptor instead. func (*DB_CollectBoxGain) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{26} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{28} } func (x *DB_CollectBoxGain) GetId() int32 { @@ -2039,7 +2157,7 @@ type DB_CollectBoxGainArray struct { func (x *DB_CollectBoxGainArray) Reset() { *x = DB_CollectBoxGainArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[27] + mi := &file_protocol_server_pbdata_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2052,7 +2170,7 @@ func (x *DB_CollectBoxGainArray) String() string { func (*DB_CollectBoxGainArray) ProtoMessage() {} func (x *DB_CollectBoxGainArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[27] + mi := &file_protocol_server_pbdata_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2065,7 +2183,7 @@ func (x *DB_CollectBoxGainArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CollectBoxGainArray.ProtoReflect.Descriptor instead. func (*DB_CollectBoxGainArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{27} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{29} } func (x *DB_CollectBoxGainArray) GetArr() []*DB_CollectBoxGain { @@ -2088,7 +2206,7 @@ type DB_CrashSearch struct { func (x *DB_CrashSearch) Reset() { *x = DB_CrashSearch{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[28] + mi := &file_protocol_server_pbdata_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2101,7 +2219,7 @@ func (x *DB_CrashSearch) String() string { func (*DB_CrashSearch) ProtoMessage() {} func (x *DB_CrashSearch) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[28] + mi := &file_protocol_server_pbdata_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2114,7 +2232,7 @@ func (x *DB_CrashSearch) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CrashSearch.ProtoReflect.Descriptor instead. func (*DB_CrashSearch) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{28} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{30} } func (x *DB_CrashSearch) GetId() int32 { @@ -2149,7 +2267,7 @@ type DB_CrashSearchArray struct { func (x *DB_CrashSearchArray) Reset() { *x = DB_CrashSearchArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[29] + mi := &file_protocol_server_pbdata_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2162,7 +2280,7 @@ func (x *DB_CrashSearchArray) String() string { func (*DB_CrashSearchArray) ProtoMessage() {} func (x *DB_CrashSearchArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[29] + mi := &file_protocol_server_pbdata_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2175,7 +2293,7 @@ func (x *DB_CrashSearchArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CrashSearchArray.ProtoReflect.Descriptor instead. func (*DB_CrashSearchArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{29} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{31} } func (x *DB_CrashSearchArray) GetArr() []*DB_CrashSearch { @@ -2200,7 +2318,7 @@ type DB_Createroom struct { func (x *DB_Createroom) Reset() { *x = DB_Createroom{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[30] + mi := &file_protocol_server_pbdata_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2213,7 +2331,7 @@ func (x *DB_Createroom) String() string { func (*DB_Createroom) ProtoMessage() {} func (x *DB_Createroom) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[30] + mi := &file_protocol_server_pbdata_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2226,7 +2344,7 @@ func (x *DB_Createroom) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Createroom.ProtoReflect.Descriptor instead. func (*DB_Createroom) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{30} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{32} } func (x *DB_Createroom) GetId() int32 { @@ -2275,7 +2393,7 @@ type DB_CreateroomArray struct { func (x *DB_CreateroomArray) Reset() { *x = DB_CreateroomArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[31] + mi := &file_protocol_server_pbdata_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2288,7 +2406,7 @@ func (x *DB_CreateroomArray) String() string { func (*DB_CreateroomArray) ProtoMessage() {} func (x *DB_CreateroomArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[31] + mi := &file_protocol_server_pbdata_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2301,7 +2419,7 @@ func (x *DB_CreateroomArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_CreateroomArray.ProtoReflect.Descriptor instead. func (*DB_CreateroomArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{31} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{33} } func (x *DB_CreateroomArray) GetArr() []*DB_Createroom { @@ -2356,7 +2474,7 @@ type DB_Fish struct { func (x *DB_Fish) Reset() { *x = DB_Fish{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[32] + mi := &file_protocol_server_pbdata_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2369,7 +2487,7 @@ func (x *DB_Fish) String() string { func (*DB_Fish) ProtoMessage() {} func (x *DB_Fish) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[32] + mi := &file_protocol_server_pbdata_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2382,7 +2500,7 @@ func (x *DB_Fish) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Fish.ProtoReflect.Descriptor instead. func (*DB_Fish) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{32} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{34} } func (x *DB_Fish) GetId() int32 { @@ -2641,7 +2759,7 @@ type DB_FishArray struct { func (x *DB_FishArray) Reset() { *x = DB_FishArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[33] + mi := &file_protocol_server_pbdata_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2654,7 +2772,7 @@ func (x *DB_FishArray) String() string { func (*DB_FishArray) ProtoMessage() {} func (x *DB_FishArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[33] + mi := &file_protocol_server_pbdata_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2667,7 +2785,7 @@ func (x *DB_FishArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishArray.ProtoReflect.Descriptor instead. func (*DB_FishArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{33} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{35} } func (x *DB_FishArray) GetArr() []*DB_Fish { @@ -2697,7 +2815,7 @@ type DB_FishOut struct { func (x *DB_FishOut) Reset() { *x = DB_FishOut{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[34] + mi := &file_protocol_server_pbdata_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2710,7 +2828,7 @@ func (x *DB_FishOut) String() string { func (*DB_FishOut) ProtoMessage() {} func (x *DB_FishOut) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[34] + mi := &file_protocol_server_pbdata_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2723,7 +2841,7 @@ func (x *DB_FishOut) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishOut.ProtoReflect.Descriptor instead. func (*DB_FishOut) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{34} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{36} } func (x *DB_FishOut) GetId() int32 { @@ -2807,7 +2925,7 @@ type DB_FishOutArray struct { func (x *DB_FishOutArray) Reset() { *x = DB_FishOutArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[35] + mi := &file_protocol_server_pbdata_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2820,7 +2938,7 @@ func (x *DB_FishOutArray) String() string { func (*DB_FishOutArray) ProtoMessage() {} func (x *DB_FishOutArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[35] + mi := &file_protocol_server_pbdata_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2833,7 +2951,7 @@ func (x *DB_FishOutArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishOutArray.ProtoReflect.Descriptor instead. func (*DB_FishOutArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{35} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{37} } func (x *DB_FishOutArray) GetArr() []*DB_FishOut { @@ -2856,7 +2974,7 @@ type DB_FishPath struct { func (x *DB_FishPath) Reset() { *x = DB_FishPath{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[36] + mi := &file_protocol_server_pbdata_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2869,7 +2987,7 @@ func (x *DB_FishPath) String() string { func (*DB_FishPath) ProtoMessage() {} func (x *DB_FishPath) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[36] + mi := &file_protocol_server_pbdata_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2882,7 +3000,7 @@ func (x *DB_FishPath) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishPath.ProtoReflect.Descriptor instead. func (*DB_FishPath) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{36} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{38} } func (x *DB_FishPath) GetId() int32 { @@ -2917,7 +3035,7 @@ type DB_FishPathArray struct { func (x *DB_FishPathArray) Reset() { *x = DB_FishPathArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[37] + mi := &file_protocol_server_pbdata_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2930,7 +3048,7 @@ func (x *DB_FishPathArray) String() string { func (*DB_FishPathArray) ProtoMessage() {} func (x *DB_FishPathArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[37] + mi := &file_protocol_server_pbdata_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2943,7 +3061,7 @@ func (x *DB_FishPathArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishPathArray.ProtoReflect.Descriptor instead. func (*DB_FishPathArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{37} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{39} } func (x *DB_FishPathArray) GetArr() []*DB_FishPath { @@ -2975,7 +3093,7 @@ type DB_FishRoom struct { func (x *DB_FishRoom) Reset() { *x = DB_FishRoom{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[38] + mi := &file_protocol_server_pbdata_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2988,7 +3106,7 @@ func (x *DB_FishRoom) String() string { func (*DB_FishRoom) ProtoMessage() {} func (x *DB_FishRoom) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[38] + mi := &file_protocol_server_pbdata_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3001,7 +3119,7 @@ func (x *DB_FishRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishRoom.ProtoReflect.Descriptor instead. func (*DB_FishRoom) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{38} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{40} } func (x *DB_FishRoom) GetId() int32 { @@ -3099,7 +3217,7 @@ type DB_FishRoomArray struct { func (x *DB_FishRoomArray) Reset() { *x = DB_FishRoomArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[39] + mi := &file_protocol_server_pbdata_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3112,7 +3230,7 @@ func (x *DB_FishRoomArray) String() string { func (*DB_FishRoomArray) ProtoMessage() {} func (x *DB_FishRoomArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[39] + mi := &file_protocol_server_pbdata_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3125,7 +3243,7 @@ func (x *DB_FishRoomArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishRoomArray.ProtoReflect.Descriptor instead. func (*DB_FishRoomArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{39} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{41} } func (x *DB_FishRoomArray) GetArr() []*DB_FishRoom { @@ -3164,7 +3282,7 @@ type DB_FishSkill struct { func (x *DB_FishSkill) Reset() { *x = DB_FishSkill{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[40] + mi := &file_protocol_server_pbdata_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3177,7 +3295,7 @@ func (x *DB_FishSkill) String() string { func (*DB_FishSkill) ProtoMessage() {} func (x *DB_FishSkill) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[40] + mi := &file_protocol_server_pbdata_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3190,7 +3308,7 @@ func (x *DB_FishSkill) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishSkill.ProtoReflect.Descriptor instead. func (*DB_FishSkill) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{40} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{42} } func (x *DB_FishSkill) GetId() int32 { @@ -3337,7 +3455,7 @@ type DB_FishSkillArray struct { func (x *DB_FishSkillArray) Reset() { *x = DB_FishSkillArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[41] + mi := &file_protocol_server_pbdata_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3350,7 +3468,7 @@ func (x *DB_FishSkillArray) String() string { func (*DB_FishSkillArray) ProtoMessage() {} func (x *DB_FishSkillArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[41] + mi := &file_protocol_server_pbdata_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3363,7 +3481,7 @@ func (x *DB_FishSkillArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FishSkillArray.ProtoReflect.Descriptor instead. func (*DB_FishSkillArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{41} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{43} } func (x *DB_FishSkillArray) GetArr() []*DB_FishSkill { @@ -3388,7 +3506,7 @@ type DB_FortuneGod_Odds struct { func (x *DB_FortuneGod_Odds) Reset() { *x = DB_FortuneGod_Odds{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[42] + mi := &file_protocol_server_pbdata_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3401,7 +3519,7 @@ func (x *DB_FortuneGod_Odds) String() string { func (*DB_FortuneGod_Odds) ProtoMessage() {} func (x *DB_FortuneGod_Odds) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[42] + mi := &file_protocol_server_pbdata_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3414,7 +3532,7 @@ func (x *DB_FortuneGod_Odds) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_Odds.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_Odds) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{42} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{44} } func (x *DB_FortuneGod_Odds) GetId() int32 { @@ -3463,7 +3581,7 @@ type DB_FortuneGod_OddsArray struct { func (x *DB_FortuneGod_OddsArray) Reset() { *x = DB_FortuneGod_OddsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[43] + mi := &file_protocol_server_pbdata_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3476,7 +3594,7 @@ func (x *DB_FortuneGod_OddsArray) String() string { func (*DB_FortuneGod_OddsArray) ProtoMessage() {} func (x *DB_FortuneGod_OddsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[43] + mi := &file_protocol_server_pbdata_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3489,7 +3607,7 @@ func (x *DB_FortuneGod_OddsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_OddsArray.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_OddsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{43} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{45} } func (x *DB_FortuneGod_OddsArray) GetArr() []*DB_FortuneGod_Odds { @@ -3513,7 +3631,7 @@ type DB_FortuneGod_TurnRate struct { func (x *DB_FortuneGod_TurnRate) Reset() { *x = DB_FortuneGod_TurnRate{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[44] + mi := &file_protocol_server_pbdata_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3526,7 +3644,7 @@ func (x *DB_FortuneGod_TurnRate) String() string { func (*DB_FortuneGod_TurnRate) ProtoMessage() {} func (x *DB_FortuneGod_TurnRate) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[44] + mi := &file_protocol_server_pbdata_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3539,7 +3657,7 @@ func (x *DB_FortuneGod_TurnRate) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_TurnRate.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_TurnRate) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{44} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{46} } func (x *DB_FortuneGod_TurnRate) GetId() int32 { @@ -3581,7 +3699,7 @@ type DB_FortuneGod_TurnRateArray struct { func (x *DB_FortuneGod_TurnRateArray) Reset() { *x = DB_FortuneGod_TurnRateArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[45] + mi := &file_protocol_server_pbdata_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3594,7 +3712,7 @@ func (x *DB_FortuneGod_TurnRateArray) String() string { func (*DB_FortuneGod_TurnRateArray) ProtoMessage() {} func (x *DB_FortuneGod_TurnRateArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[45] + mi := &file_protocol_server_pbdata_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3607,7 +3725,7 @@ func (x *DB_FortuneGod_TurnRateArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_TurnRateArray.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_TurnRateArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{45} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{47} } func (x *DB_FortuneGod_TurnRateArray) GetArr() []*DB_FortuneGod_TurnRate { @@ -3630,7 +3748,7 @@ type DB_FortuneGod_Weight struct { func (x *DB_FortuneGod_Weight) Reset() { *x = DB_FortuneGod_Weight{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[46] + mi := &file_protocol_server_pbdata_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3643,7 +3761,7 @@ func (x *DB_FortuneGod_Weight) String() string { func (*DB_FortuneGod_Weight) ProtoMessage() {} func (x *DB_FortuneGod_Weight) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[46] + mi := &file_protocol_server_pbdata_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3656,7 +3774,7 @@ func (x *DB_FortuneGod_Weight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_Weight.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_Weight) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{46} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{48} } func (x *DB_FortuneGod_Weight) GetId() int32 { @@ -3691,7 +3809,7 @@ type DB_FortuneGod_WeightArray struct { func (x *DB_FortuneGod_WeightArray) Reset() { *x = DB_FortuneGod_WeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[47] + mi := &file_protocol_server_pbdata_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3704,7 +3822,7 @@ func (x *DB_FortuneGod_WeightArray) String() string { func (*DB_FortuneGod_WeightArray) ProtoMessage() {} func (x *DB_FortuneGod_WeightArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[47] + mi := &file_protocol_server_pbdata_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3717,7 +3835,7 @@ func (x *DB_FortuneGod_WeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_WeightArray.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_WeightArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{47} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{49} } func (x *DB_FortuneGod_WeightArray) GetArr() []*DB_FortuneGod_Weight { @@ -3742,7 +3860,7 @@ type DB_FortuneGod_WeightCondition struct { func (x *DB_FortuneGod_WeightCondition) Reset() { *x = DB_FortuneGod_WeightCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[48] + mi := &file_protocol_server_pbdata_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3755,7 +3873,7 @@ func (x *DB_FortuneGod_WeightCondition) String() string { func (*DB_FortuneGod_WeightCondition) ProtoMessage() {} func (x *DB_FortuneGod_WeightCondition) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[48] + mi := &file_protocol_server_pbdata_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3768,7 +3886,7 @@ func (x *DB_FortuneGod_WeightCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_FortuneGod_WeightCondition.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_WeightCondition) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{48} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{50} } func (x *DB_FortuneGod_WeightCondition) GetId() int32 { @@ -3817,7 +3935,7 @@ type DB_FortuneGod_WeightConditionArray struct { func (x *DB_FortuneGod_WeightConditionArray) Reset() { *x = DB_FortuneGod_WeightConditionArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[49] + mi := &file_protocol_server_pbdata_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3830,7 +3948,7 @@ func (x *DB_FortuneGod_WeightConditionArray) String() string { func (*DB_FortuneGod_WeightConditionArray) ProtoMessage() {} func (x *DB_FortuneGod_WeightConditionArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[49] + mi := &file_protocol_server_pbdata_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3843,7 +3961,7 @@ func (x *DB_FortuneGod_WeightConditionArray) ProtoReflect() protoreflect.Message // Deprecated: Use DB_FortuneGod_WeightConditionArray.ProtoReflect.Descriptor instead. func (*DB_FortuneGod_WeightConditionArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{49} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{51} } func (x *DB_FortuneGod_WeightConditionArray) GetArr() []*DB_FortuneGod_WeightCondition { @@ -3876,7 +3994,7 @@ type DB_GamMatchLV struct { func (x *DB_GamMatchLV) Reset() { *x = DB_GamMatchLV{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[50] + mi := &file_protocol_server_pbdata_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3889,7 +4007,7 @@ func (x *DB_GamMatchLV) String() string { func (*DB_GamMatchLV) ProtoMessage() {} func (x *DB_GamMatchLV) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[50] + mi := &file_protocol_server_pbdata_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3902,7 +4020,7 @@ func (x *DB_GamMatchLV) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GamMatchLV.ProtoReflect.Descriptor instead. func (*DB_GamMatchLV) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{50} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{52} } func (x *DB_GamMatchLV) GetId() int32 { @@ -4007,7 +4125,7 @@ type DB_GamMatchLVArray struct { func (x *DB_GamMatchLVArray) Reset() { *x = DB_GamMatchLVArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[51] + mi := &file_protocol_server_pbdata_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4020,7 +4138,7 @@ func (x *DB_GamMatchLVArray) String() string { func (*DB_GamMatchLVArray) ProtoMessage() {} func (x *DB_GamMatchLVArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[51] + mi := &file_protocol_server_pbdata_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4033,7 +4151,7 @@ func (x *DB_GamMatchLVArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GamMatchLVArray.ProtoReflect.Descriptor instead. func (*DB_GamMatchLVArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{51} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{53} } func (x *DB_GamMatchLVArray) GetArr() []*DB_GamMatchLV { @@ -4057,7 +4175,7 @@ type DB_GameBankruptcy struct { func (x *DB_GameBankruptcy) Reset() { *x = DB_GameBankruptcy{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[52] + mi := &file_protocol_server_pbdata_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4070,7 +4188,7 @@ func (x *DB_GameBankruptcy) String() string { func (*DB_GameBankruptcy) ProtoMessage() {} func (x *DB_GameBankruptcy) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[52] + mi := &file_protocol_server_pbdata_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4083,7 +4201,7 @@ func (x *DB_GameBankruptcy) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameBankruptcy.ProtoReflect.Descriptor instead. func (*DB_GameBankruptcy) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{52} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{54} } func (x *DB_GameBankruptcy) GetId() int32 { @@ -4125,7 +4243,7 @@ type DB_GameBankruptcyArray struct { func (x *DB_GameBankruptcyArray) Reset() { *x = DB_GameBankruptcyArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[53] + mi := &file_protocol_server_pbdata_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4138,7 +4256,7 @@ func (x *DB_GameBankruptcyArray) String() string { func (*DB_GameBankruptcyArray) ProtoMessage() {} func (x *DB_GameBankruptcyArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[53] + mi := &file_protocol_server_pbdata_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4151,7 +4269,7 @@ func (x *DB_GameBankruptcyArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameBankruptcyArray.ProtoReflect.Descriptor instead. func (*DB_GameBankruptcyArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{53} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{55} } func (x *DB_GameBankruptcyArray) GetArr() []*DB_GameBankruptcy { @@ -4183,7 +4301,7 @@ type DB_GameCoinPool struct { func (x *DB_GameCoinPool) Reset() { *x = DB_GameCoinPool{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[54] + mi := &file_protocol_server_pbdata_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4196,7 +4314,7 @@ func (x *DB_GameCoinPool) String() string { func (*DB_GameCoinPool) ProtoMessage() {} func (x *DB_GameCoinPool) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[54] + mi := &file_protocol_server_pbdata_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4209,7 +4327,7 @@ func (x *DB_GameCoinPool) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameCoinPool.ProtoReflect.Descriptor instead. func (*DB_GameCoinPool) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{54} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{56} } func (x *DB_GameCoinPool) GetId() int32 { @@ -4307,7 +4425,7 @@ type DB_GameCoinPoolArray struct { func (x *DB_GameCoinPoolArray) Reset() { *x = DB_GameCoinPoolArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[55] + mi := &file_protocol_server_pbdata_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4320,7 +4438,7 @@ func (x *DB_GameCoinPoolArray) String() string { func (*DB_GameCoinPoolArray) ProtoMessage() {} func (x *DB_GameCoinPoolArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[55] + mi := &file_protocol_server_pbdata_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4333,7 +4451,7 @@ func (x *DB_GameCoinPoolArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameCoinPoolArray.ProtoReflect.Descriptor instead. func (*DB_GameCoinPoolArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{55} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{57} } func (x *DB_GameCoinPoolArray) GetArr() []*DB_GameCoinPool { @@ -4427,7 +4545,7 @@ type DB_GameFree struct { func (x *DB_GameFree) Reset() { *x = DB_GameFree{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[56] + mi := &file_protocol_server_pbdata_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4440,7 +4558,7 @@ func (x *DB_GameFree) String() string { func (*DB_GameFree) ProtoMessage() {} func (x *DB_GameFree) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[56] + mi := &file_protocol_server_pbdata_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4453,7 +4571,7 @@ func (x *DB_GameFree) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameFree.ProtoReflect.Descriptor instead. func (*DB_GameFree) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{56} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{58} } func (x *DB_GameFree) GetId() int32 { @@ -4985,7 +5103,7 @@ type DB_GameFreeArray struct { func (x *DB_GameFreeArray) Reset() { *x = DB_GameFreeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[57] + mi := &file_protocol_server_pbdata_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4998,7 +5116,7 @@ func (x *DB_GameFreeArray) String() string { func (*DB_GameFreeArray) ProtoMessage() {} func (x *DB_GameFreeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[57] + mi := &file_protocol_server_pbdata_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5011,7 +5129,7 @@ func (x *DB_GameFreeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameFreeArray.ProtoReflect.Descriptor instead. func (*DB_GameFreeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{57} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{59} } func (x *DB_GameFreeArray) GetArr() []*DB_GameFree { @@ -5051,7 +5169,7 @@ type DB_GameItem struct { func (x *DB_GameItem) Reset() { *x = DB_GameItem{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[58] + mi := &file_protocol_server_pbdata_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5064,7 +5182,7 @@ func (x *DB_GameItem) String() string { func (*DB_GameItem) ProtoMessage() {} func (x *DB_GameItem) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[58] + mi := &file_protocol_server_pbdata_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5077,7 +5195,7 @@ func (x *DB_GameItem) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameItem.ProtoReflect.Descriptor instead. func (*DB_GameItem) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{58} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{60} } func (x *DB_GameItem) GetId() int32 { @@ -5231,7 +5349,7 @@ type DB_GameItemArray struct { func (x *DB_GameItemArray) Reset() { *x = DB_GameItemArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[59] + mi := &file_protocol_server_pbdata_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5244,7 +5362,7 @@ func (x *DB_GameItemArray) String() string { func (*DB_GameItemArray) ProtoMessage() {} func (x *DB_GameItemArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[59] + mi := &file_protocol_server_pbdata_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5257,7 +5375,7 @@ func (x *DB_GameItemArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameItemArray.ProtoReflect.Descriptor instead. func (*DB_GameItemArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{59} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{61} } func (x *DB_GameItemArray) GetArr() []*DB_GameItem { @@ -5285,7 +5403,7 @@ type DB_GameMatchLevel struct { func (x *DB_GameMatchLevel) Reset() { *x = DB_GameMatchLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[60] + mi := &file_protocol_server_pbdata_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5298,7 +5416,7 @@ func (x *DB_GameMatchLevel) String() string { func (*DB_GameMatchLevel) ProtoMessage() {} func (x *DB_GameMatchLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[60] + mi := &file_protocol_server_pbdata_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5311,7 +5429,7 @@ func (x *DB_GameMatchLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameMatchLevel.ProtoReflect.Descriptor instead. func (*DB_GameMatchLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{60} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{62} } func (x *DB_GameMatchLevel) GetId() int32 { @@ -5381,7 +5499,7 @@ type DB_GameMatchLevelArray struct { func (x *DB_GameMatchLevelArray) Reset() { *x = DB_GameMatchLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[61] + mi := &file_protocol_server_pbdata_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5394,7 +5512,7 @@ func (x *DB_GameMatchLevelArray) String() string { func (*DB_GameMatchLevelArray) ProtoMessage() {} func (x *DB_GameMatchLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[61] + mi := &file_protocol_server_pbdata_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5407,7 +5525,7 @@ func (x *DB_GameMatchLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameMatchLevelArray.ProtoReflect.Descriptor instead. func (*DB_GameMatchLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{61} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{63} } func (x *DB_GameMatchLevelArray) GetArr() []*DB_GameMatchLevel { @@ -5434,7 +5552,7 @@ type DB_GameRule struct { func (x *DB_GameRule) Reset() { *x = DB_GameRule{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[62] + mi := &file_protocol_server_pbdata_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5447,7 +5565,7 @@ func (x *DB_GameRule) String() string { func (*DB_GameRule) ProtoMessage() {} func (x *DB_GameRule) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[62] + mi := &file_protocol_server_pbdata_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5460,7 +5578,7 @@ func (x *DB_GameRule) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameRule.ProtoReflect.Descriptor instead. func (*DB_GameRule) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{62} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{64} } func (x *DB_GameRule) GetId() int32 { @@ -5523,7 +5641,7 @@ type DB_GameRuleArray struct { func (x *DB_GameRuleArray) Reset() { *x = DB_GameRuleArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[63] + mi := &file_protocol_server_pbdata_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5536,7 +5654,7 @@ func (x *DB_GameRuleArray) String() string { func (*DB_GameRuleArray) ProtoMessage() {} func (x *DB_GameRuleArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[63] + mi := &file_protocol_server_pbdata_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5549,7 +5667,7 @@ func (x *DB_GameRuleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameRuleArray.ProtoReflect.Descriptor instead. func (*DB_GameRuleArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{63} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{65} } func (x *DB_GameRuleArray) GetArr() []*DB_GameRule { @@ -5573,7 +5691,7 @@ type DB_GameSubsidy struct { func (x *DB_GameSubsidy) Reset() { *x = DB_GameSubsidy{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[64] + mi := &file_protocol_server_pbdata_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5586,7 +5704,7 @@ func (x *DB_GameSubsidy) String() string { func (*DB_GameSubsidy) ProtoMessage() {} func (x *DB_GameSubsidy) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[64] + mi := &file_protocol_server_pbdata_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5599,7 +5717,7 @@ func (x *DB_GameSubsidy) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameSubsidy.ProtoReflect.Descriptor instead. func (*DB_GameSubsidy) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{64} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{66} } func (x *DB_GameSubsidy) GetId() int32 { @@ -5641,7 +5759,7 @@ type DB_GameSubsidyArray struct { func (x *DB_GameSubsidyArray) Reset() { *x = DB_GameSubsidyArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[65] + mi := &file_protocol_server_pbdata_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5654,7 +5772,7 @@ func (x *DB_GameSubsidyArray) String() string { func (*DB_GameSubsidyArray) ProtoMessage() {} func (x *DB_GameSubsidyArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[65] + mi := &file_protocol_server_pbdata_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5667,7 +5785,7 @@ func (x *DB_GameSubsidyArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GameSubsidyArray.ProtoReflect.Descriptor instead. func (*DB_GameSubsidyArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{65} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{67} } func (x *DB_GameSubsidyArray) GetArr() []*DB_GameSubsidy { @@ -5693,7 +5811,7 @@ type DB_Game_Drop struct { func (x *DB_Game_Drop) Reset() { *x = DB_Game_Drop{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[66] + mi := &file_protocol_server_pbdata_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5706,7 +5824,7 @@ func (x *DB_Game_Drop) String() string { func (*DB_Game_Drop) ProtoMessage() {} func (x *DB_Game_Drop) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[66] + mi := &file_protocol_server_pbdata_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5719,7 +5837,7 @@ func (x *DB_Game_Drop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_Drop.ProtoReflect.Descriptor instead. func (*DB_Game_Drop) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{66} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{68} } func (x *DB_Game_Drop) GetId() int32 { @@ -5775,7 +5893,7 @@ type DB_Game_DropArray struct { func (x *DB_Game_DropArray) Reset() { *x = DB_Game_DropArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[67] + mi := &file_protocol_server_pbdata_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5788,7 +5906,7 @@ func (x *DB_Game_DropArray) String() string { func (*DB_Game_DropArray) ProtoMessage() {} func (x *DB_Game_DropArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[67] + mi := &file_protocol_server_pbdata_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5801,7 +5919,7 @@ func (x *DB_Game_DropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_DropArray.ProtoReflect.Descriptor instead. func (*DB_Game_DropArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{67} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{69} } func (x *DB_Game_DropArray) GetArr() []*DB_Game_Drop { @@ -5827,7 +5945,7 @@ type DB_Game_Introduction struct { func (x *DB_Game_Introduction) Reset() { *x = DB_Game_Introduction{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[68] + mi := &file_protocol_server_pbdata_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5840,7 +5958,7 @@ func (x *DB_Game_Introduction) String() string { func (*DB_Game_Introduction) ProtoMessage() {} func (x *DB_Game_Introduction) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[68] + mi := &file_protocol_server_pbdata_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5853,7 +5971,7 @@ func (x *DB_Game_Introduction) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_Introduction.ProtoReflect.Descriptor instead. func (*DB_Game_Introduction) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{68} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{70} } func (x *DB_Game_Introduction) GetId() int32 { @@ -5909,7 +6027,7 @@ type DB_Game_IntroductionArray struct { func (x *DB_Game_IntroductionArray) Reset() { *x = DB_Game_IntroductionArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[69] + mi := &file_protocol_server_pbdata_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5922,7 +6040,7 @@ func (x *DB_Game_IntroductionArray) String() string { func (*DB_Game_IntroductionArray) ProtoMessage() {} func (x *DB_Game_IntroductionArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[69] + mi := &file_protocol_server_pbdata_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5935,7 +6053,7 @@ func (x *DB_Game_IntroductionArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_IntroductionArray.ProtoReflect.Descriptor instead. func (*DB_Game_IntroductionArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{69} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{71} } func (x *DB_Game_IntroductionArray) GetArr() []*DB_Game_Introduction { @@ -5965,7 +6083,7 @@ type DB_Game_Pet struct { func (x *DB_Game_Pet) Reset() { *x = DB_Game_Pet{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[70] + mi := &file_protocol_server_pbdata_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5978,7 +6096,7 @@ func (x *DB_Game_Pet) String() string { func (*DB_Game_Pet) ProtoMessage() {} func (x *DB_Game_Pet) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[70] + mi := &file_protocol_server_pbdata_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5991,7 +6109,7 @@ func (x *DB_Game_Pet) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_Pet.ProtoReflect.Descriptor instead. func (*DB_Game_Pet) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{70} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{72} } func (x *DB_Game_Pet) GetId() int32 { @@ -6075,7 +6193,7 @@ type DB_Game_PetArray struct { func (x *DB_Game_PetArray) Reset() { *x = DB_Game_PetArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[71] + mi := &file_protocol_server_pbdata_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6088,7 +6206,7 @@ func (x *DB_Game_PetArray) String() string { func (*DB_Game_PetArray) ProtoMessage() {} func (x *DB_Game_PetArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[71] + mi := &file_protocol_server_pbdata_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6101,7 +6219,7 @@ func (x *DB_Game_PetArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_PetArray.ProtoReflect.Descriptor instead. func (*DB_Game_PetArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{71} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{73} } func (x *DB_Game_PetArray) GetArr() []*DB_Game_Pet { @@ -6131,7 +6249,7 @@ type DB_Game_Role struct { func (x *DB_Game_Role) Reset() { *x = DB_Game_Role{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[72] + mi := &file_protocol_server_pbdata_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6144,7 +6262,7 @@ func (x *DB_Game_Role) String() string { func (*DB_Game_Role) ProtoMessage() {} func (x *DB_Game_Role) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[72] + mi := &file_protocol_server_pbdata_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6157,7 +6275,7 @@ func (x *DB_Game_Role) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_Role.ProtoReflect.Descriptor instead. func (*DB_Game_Role) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{72} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{74} } func (x *DB_Game_Role) GetId() int32 { @@ -6241,7 +6359,7 @@ type DB_Game_RoleArray struct { func (x *DB_Game_RoleArray) Reset() { *x = DB_Game_RoleArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[73] + mi := &file_protocol_server_pbdata_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6254,7 +6372,7 @@ func (x *DB_Game_RoleArray) String() string { func (*DB_Game_RoleArray) ProtoMessage() {} func (x *DB_Game_RoleArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[73] + mi := &file_protocol_server_pbdata_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6267,7 +6385,7 @@ func (x *DB_Game_RoleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Game_RoleArray.ProtoReflect.Descriptor instead. func (*DB_Game_RoleArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{73} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{75} } func (x *DB_Game_RoleArray) GetArr() []*DB_Game_Role { @@ -6290,7 +6408,7 @@ type DB_GiftBox struct { func (x *DB_GiftBox) Reset() { *x = DB_GiftBox{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[74] + mi := &file_protocol_server_pbdata_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6303,7 +6421,7 @@ func (x *DB_GiftBox) String() string { func (*DB_GiftBox) ProtoMessage() {} func (x *DB_GiftBox) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[74] + mi := &file_protocol_server_pbdata_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6316,7 +6434,7 @@ func (x *DB_GiftBox) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GiftBox.ProtoReflect.Descriptor instead. func (*DB_GiftBox) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{74} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{76} } func (x *DB_GiftBox) GetId() int32 { @@ -6351,7 +6469,7 @@ type DB_GiftBoxArray struct { func (x *DB_GiftBoxArray) Reset() { *x = DB_GiftBoxArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[75] + mi := &file_protocol_server_pbdata_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6364,7 +6482,7 @@ func (x *DB_GiftBoxArray) String() string { func (*DB_GiftBoxArray) ProtoMessage() {} func (x *DB_GiftBoxArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[75] + mi := &file_protocol_server_pbdata_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6377,7 +6495,7 @@ func (x *DB_GiftBoxArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GiftBoxArray.ProtoReflect.Descriptor instead. func (*DB_GiftBoxArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{75} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{77} } func (x *DB_GiftBoxArray) GetArr() []*DB_GiftBox { @@ -6404,7 +6522,7 @@ type DB_GiftCard struct { func (x *DB_GiftCard) Reset() { *x = DB_GiftCard{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[76] + mi := &file_protocol_server_pbdata_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6417,7 +6535,7 @@ func (x *DB_GiftCard) String() string { func (*DB_GiftCard) ProtoMessage() {} func (x *DB_GiftCard) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[76] + mi := &file_protocol_server_pbdata_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6430,7 +6548,7 @@ func (x *DB_GiftCard) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GiftCard.ProtoReflect.Descriptor instead. func (*DB_GiftCard) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{76} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{78} } func (x *DB_GiftCard) GetId() int32 { @@ -6493,7 +6611,7 @@ type DB_GiftCardArray struct { func (x *DB_GiftCardArray) Reset() { *x = DB_GiftCardArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[77] + mi := &file_protocol_server_pbdata_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6506,7 +6624,7 @@ func (x *DB_GiftCardArray) String() string { func (*DB_GiftCardArray) ProtoMessage() {} func (x *DB_GiftCardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[77] + mi := &file_protocol_server_pbdata_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6519,7 +6637,7 @@ func (x *DB_GiftCardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_GiftCardArray.ProtoReflect.Descriptor instead. func (*DB_GiftCardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{77} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{79} } func (x *DB_GiftCardArray) GetArr() []*DB_GiftCard { @@ -6543,7 +6661,7 @@ type DB_IceAgeElementRate struct { func (x *DB_IceAgeElementRate) Reset() { *x = DB_IceAgeElementRate{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[78] + mi := &file_protocol_server_pbdata_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6556,7 +6674,7 @@ func (x *DB_IceAgeElementRate) String() string { func (*DB_IceAgeElementRate) ProtoMessage() {} func (x *DB_IceAgeElementRate) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[78] + mi := &file_protocol_server_pbdata_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6569,7 +6687,7 @@ func (x *DB_IceAgeElementRate) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_IceAgeElementRate.ProtoReflect.Descriptor instead. func (*DB_IceAgeElementRate) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{78} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{80} } func (x *DB_IceAgeElementRate) GetId() int32 { @@ -6611,7 +6729,7 @@ type DB_IceAgeElementRateArray struct { func (x *DB_IceAgeElementRateArray) Reset() { *x = DB_IceAgeElementRateArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[79] + mi := &file_protocol_server_pbdata_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6624,7 +6742,7 @@ func (x *DB_IceAgeElementRateArray) String() string { func (*DB_IceAgeElementRateArray) ProtoMessage() {} func (x *DB_IceAgeElementRateArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[79] + mi := &file_protocol_server_pbdata_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6637,7 +6755,7 @@ func (x *DB_IceAgeElementRateArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_IceAgeElementRateArray.ProtoReflect.Descriptor instead. func (*DB_IceAgeElementRateArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{79} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{81} } func (x *DB_IceAgeElementRateArray) GetArr() []*DB_IceAgeElementRate { @@ -6662,7 +6780,7 @@ type DB_Legend_Odds struct { func (x *DB_Legend_Odds) Reset() { *x = DB_Legend_Odds{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[80] + mi := &file_protocol_server_pbdata_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6675,7 +6793,7 @@ func (x *DB_Legend_Odds) String() string { func (*DB_Legend_Odds) ProtoMessage() {} func (x *DB_Legend_Odds) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[80] + mi := &file_protocol_server_pbdata_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6688,7 +6806,7 @@ func (x *DB_Legend_Odds) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_Odds.ProtoReflect.Descriptor instead. func (*DB_Legend_Odds) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{80} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{82} } func (x *DB_Legend_Odds) GetId() int32 { @@ -6737,7 +6855,7 @@ type DB_Legend_OddsArray struct { func (x *DB_Legend_OddsArray) Reset() { *x = DB_Legend_OddsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[81] + mi := &file_protocol_server_pbdata_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6750,7 +6868,7 @@ func (x *DB_Legend_OddsArray) String() string { func (*DB_Legend_OddsArray) ProtoMessage() {} func (x *DB_Legend_OddsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[81] + mi := &file_protocol_server_pbdata_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6763,7 +6881,7 @@ func (x *DB_Legend_OddsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_OddsArray.ProtoReflect.Descriptor instead. func (*DB_Legend_OddsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{81} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{83} } func (x *DB_Legend_OddsArray) GetArr() []*DB_Legend_Odds { @@ -6787,7 +6905,7 @@ type DB_Legend_TurnRate struct { func (x *DB_Legend_TurnRate) Reset() { *x = DB_Legend_TurnRate{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[82] + mi := &file_protocol_server_pbdata_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6800,7 +6918,7 @@ func (x *DB_Legend_TurnRate) String() string { func (*DB_Legend_TurnRate) ProtoMessage() {} func (x *DB_Legend_TurnRate) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[82] + mi := &file_protocol_server_pbdata_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6813,7 +6931,7 @@ func (x *DB_Legend_TurnRate) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_TurnRate.ProtoReflect.Descriptor instead. func (*DB_Legend_TurnRate) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{82} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{84} } func (x *DB_Legend_TurnRate) GetId() int32 { @@ -6855,7 +6973,7 @@ type DB_Legend_TurnRateArray struct { func (x *DB_Legend_TurnRateArray) Reset() { *x = DB_Legend_TurnRateArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[83] + mi := &file_protocol_server_pbdata_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6868,7 +6986,7 @@ func (x *DB_Legend_TurnRateArray) String() string { func (*DB_Legend_TurnRateArray) ProtoMessage() {} func (x *DB_Legend_TurnRateArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[83] + mi := &file_protocol_server_pbdata_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6881,7 +6999,7 @@ func (x *DB_Legend_TurnRateArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_TurnRateArray.ProtoReflect.Descriptor instead. func (*DB_Legend_TurnRateArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{83} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{85} } func (x *DB_Legend_TurnRateArray) GetArr() []*DB_Legend_TurnRate { @@ -6904,7 +7022,7 @@ type DB_Legend_Weight struct { func (x *DB_Legend_Weight) Reset() { *x = DB_Legend_Weight{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[84] + mi := &file_protocol_server_pbdata_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6917,7 +7035,7 @@ func (x *DB_Legend_Weight) String() string { func (*DB_Legend_Weight) ProtoMessage() {} func (x *DB_Legend_Weight) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[84] + mi := &file_protocol_server_pbdata_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6930,7 +7048,7 @@ func (x *DB_Legend_Weight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_Weight.ProtoReflect.Descriptor instead. func (*DB_Legend_Weight) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{84} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{86} } func (x *DB_Legend_Weight) GetId() int32 { @@ -6965,7 +7083,7 @@ type DB_Legend_WeightArray struct { func (x *DB_Legend_WeightArray) Reset() { *x = DB_Legend_WeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[85] + mi := &file_protocol_server_pbdata_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6978,7 +7096,7 @@ func (x *DB_Legend_WeightArray) String() string { func (*DB_Legend_WeightArray) ProtoMessage() {} func (x *DB_Legend_WeightArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[85] + mi := &file_protocol_server_pbdata_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6991,7 +7109,7 @@ func (x *DB_Legend_WeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_WeightArray.ProtoReflect.Descriptor instead. func (*DB_Legend_WeightArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{85} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{87} } func (x *DB_Legend_WeightArray) GetArr() []*DB_Legend_Weight { @@ -7016,7 +7134,7 @@ type DB_Legend_WeightCondition struct { func (x *DB_Legend_WeightCondition) Reset() { *x = DB_Legend_WeightCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[86] + mi := &file_protocol_server_pbdata_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7029,7 +7147,7 @@ func (x *DB_Legend_WeightCondition) String() string { func (*DB_Legend_WeightCondition) ProtoMessage() {} func (x *DB_Legend_WeightCondition) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[86] + mi := &file_protocol_server_pbdata_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7042,7 +7160,7 @@ func (x *DB_Legend_WeightCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_WeightCondition.ProtoReflect.Descriptor instead. func (*DB_Legend_WeightCondition) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{86} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{88} } func (x *DB_Legend_WeightCondition) GetId() int32 { @@ -7091,7 +7209,7 @@ type DB_Legend_WeightConditionArray struct { func (x *DB_Legend_WeightConditionArray) Reset() { *x = DB_Legend_WeightConditionArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[87] + mi := &file_protocol_server_pbdata_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7104,7 +7222,7 @@ func (x *DB_Legend_WeightConditionArray) String() string { func (*DB_Legend_WeightConditionArray) ProtoMessage() {} func (x *DB_Legend_WeightConditionArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[87] + mi := &file_protocol_server_pbdata_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7117,7 +7235,7 @@ func (x *DB_Legend_WeightConditionArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Legend_WeightConditionArray.ProtoReflect.Descriptor instead. func (*DB_Legend_WeightConditionArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{87} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{89} } func (x *DB_Legend_WeightConditionArray) GetArr() []*DB_Legend_WeightCondition { @@ -7139,7 +7257,7 @@ type DB_MatchRank struct { func (x *DB_MatchRank) Reset() { *x = DB_MatchRank{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[88] + mi := &file_protocol_server_pbdata_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7152,7 +7270,7 @@ func (x *DB_MatchRank) String() string { func (*DB_MatchRank) ProtoMessage() {} func (x *DB_MatchRank) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[88] + mi := &file_protocol_server_pbdata_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7165,7 +7283,7 @@ func (x *DB_MatchRank) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_MatchRank.ProtoReflect.Descriptor instead. func (*DB_MatchRank) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{88} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{90} } func (x *DB_MatchRank) GetId() int32 { @@ -7193,7 +7311,7 @@ type DB_MatchRankArray struct { func (x *DB_MatchRankArray) Reset() { *x = DB_MatchRankArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[89] + mi := &file_protocol_server_pbdata_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7206,7 +7324,7 @@ func (x *DB_MatchRankArray) String() string { func (*DB_MatchRankArray) ProtoMessage() {} func (x *DB_MatchRankArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[89] + mi := &file_protocol_server_pbdata_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7219,7 +7337,7 @@ func (x *DB_MatchRankArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_MatchRankArray.ProtoReflect.Descriptor instead. func (*DB_MatchRankArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{89} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{91} } func (x *DB_MatchRankArray) GetArr() []*DB_MatchRank { @@ -7241,7 +7359,7 @@ type DB_Name struct { func (x *DB_Name) Reset() { *x = DB_Name{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[90] + mi := &file_protocol_server_pbdata_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7254,7 +7372,7 @@ func (x *DB_Name) String() string { func (*DB_Name) ProtoMessage() {} func (x *DB_Name) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[90] + mi := &file_protocol_server_pbdata_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7267,7 +7385,7 @@ func (x *DB_Name) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Name.ProtoReflect.Descriptor instead. func (*DB_Name) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{90} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{92} } func (x *DB_Name) GetId() int32 { @@ -7295,7 +7413,7 @@ type DB_NameArray struct { func (x *DB_NameArray) Reset() { *x = DB_NameArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[91] + mi := &file_protocol_server_pbdata_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7308,7 +7426,7 @@ func (x *DB_NameArray) String() string { func (*DB_NameArray) ProtoMessage() {} func (x *DB_NameArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[91] + mi := &file_protocol_server_pbdata_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7321,7 +7439,7 @@ func (x *DB_NameArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NameArray.ProtoReflect.Descriptor instead. func (*DB_NameArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{91} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{93} } func (x *DB_NameArray) GetArr() []*DB_Name { @@ -7343,7 +7461,7 @@ type DB_NameBoy struct { func (x *DB_NameBoy) Reset() { *x = DB_NameBoy{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[92] + mi := &file_protocol_server_pbdata_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7356,7 +7474,7 @@ func (x *DB_NameBoy) String() string { func (*DB_NameBoy) ProtoMessage() {} func (x *DB_NameBoy) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[92] + mi := &file_protocol_server_pbdata_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7369,7 +7487,7 @@ func (x *DB_NameBoy) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NameBoy.ProtoReflect.Descriptor instead. func (*DB_NameBoy) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{92} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{94} } func (x *DB_NameBoy) GetId() int32 { @@ -7397,7 +7515,7 @@ type DB_NameBoyArray struct { func (x *DB_NameBoyArray) Reset() { *x = DB_NameBoyArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[93] + mi := &file_protocol_server_pbdata_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7410,7 +7528,7 @@ func (x *DB_NameBoyArray) String() string { func (*DB_NameBoyArray) ProtoMessage() {} func (x *DB_NameBoyArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[93] + mi := &file_protocol_server_pbdata_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7423,7 +7541,7 @@ func (x *DB_NameBoyArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NameBoyArray.ProtoReflect.Descriptor instead. func (*DB_NameBoyArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{93} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{95} } func (x *DB_NameBoyArray) GetArr() []*DB_NameBoy { @@ -7445,7 +7563,7 @@ type DB_NameGirl struct { func (x *DB_NameGirl) Reset() { *x = DB_NameGirl{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[94] + mi := &file_protocol_server_pbdata_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7458,7 +7576,7 @@ func (x *DB_NameGirl) String() string { func (*DB_NameGirl) ProtoMessage() {} func (x *DB_NameGirl) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[94] + mi := &file_protocol_server_pbdata_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7471,7 +7589,7 @@ func (x *DB_NameGirl) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NameGirl.ProtoReflect.Descriptor instead. func (*DB_NameGirl) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{94} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{96} } func (x *DB_NameGirl) GetId() int32 { @@ -7499,7 +7617,7 @@ type DB_NameGirlArray struct { func (x *DB_NameGirlArray) Reset() { *x = DB_NameGirlArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[95] + mi := &file_protocol_server_pbdata_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7512,7 +7630,7 @@ func (x *DB_NameGirlArray) String() string { func (*DB_NameGirlArray) ProtoMessage() {} func (x *DB_NameGirlArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[95] + mi := &file_protocol_server_pbdata_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7525,7 +7643,7 @@ func (x *DB_NameGirlArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NameGirlArray.ProtoReflect.Descriptor instead. func (*DB_NameGirlArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{95} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{97} } func (x *DB_NameGirlArray) GetArr() []*DB_NameGirl { @@ -7555,7 +7673,7 @@ type DB_NewPlayer struct { func (x *DB_NewPlayer) Reset() { *x = DB_NewPlayer{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[96] + mi := &file_protocol_server_pbdata_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7568,7 +7686,7 @@ func (x *DB_NewPlayer) String() string { func (*DB_NewPlayer) ProtoMessage() {} func (x *DB_NewPlayer) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[96] + mi := &file_protocol_server_pbdata_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7581,7 +7699,7 @@ func (x *DB_NewPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NewPlayer.ProtoReflect.Descriptor instead. func (*DB_NewPlayer) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{96} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{98} } func (x *DB_NewPlayer) GetId() int32 { @@ -7665,7 +7783,7 @@ type DB_NewPlayerArray struct { func (x *DB_NewPlayerArray) Reset() { *x = DB_NewPlayerArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[97] + mi := &file_protocol_server_pbdata_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7678,7 +7796,7 @@ func (x *DB_NewPlayerArray) String() string { func (*DB_NewPlayerArray) ProtoMessage() {} func (x *DB_NewPlayerArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[97] + mi := &file_protocol_server_pbdata_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7691,7 +7809,7 @@ func (x *DB_NewPlayerArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NewPlayerArray.ProtoReflect.Descriptor instead. func (*DB_NewPlayerArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{97} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{99} } func (x *DB_NewPlayerArray) GetArr() []*DB_NewPlayer { @@ -7715,7 +7833,7 @@ type DB_NewYearActivity struct { func (x *DB_NewYearActivity) Reset() { *x = DB_NewYearActivity{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[98] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7728,7 +7846,7 @@ func (x *DB_NewYearActivity) String() string { func (*DB_NewYearActivity) ProtoMessage() {} func (x *DB_NewYearActivity) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[98] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7741,7 +7859,7 @@ func (x *DB_NewYearActivity) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NewYearActivity.ProtoReflect.Descriptor instead. func (*DB_NewYearActivity) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{98} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} } func (x *DB_NewYearActivity) GetId() int32 { @@ -7783,7 +7901,7 @@ type DB_NewYearActivityArray struct { func (x *DB_NewYearActivityArray) Reset() { *x = DB_NewYearActivityArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[99] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7796,7 +7914,7 @@ func (x *DB_NewYearActivityArray) String() string { func (*DB_NewYearActivityArray) ProtoMessage() {} func (x *DB_NewYearActivityArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[99] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7809,7 +7927,7 @@ func (x *DB_NewYearActivityArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_NewYearActivityArray.ProtoReflect.Descriptor instead. func (*DB_NewYearActivityArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{99} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} } func (x *DB_NewYearActivityArray) GetArr() []*DB_NewYearActivity { @@ -7833,7 +7951,7 @@ type DB_PassShow struct { func (x *DB_PassShow) Reset() { *x = DB_PassShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7846,7 +7964,7 @@ func (x *DB_PassShow) String() string { func (*DB_PassShow) ProtoMessage() {} func (x *DB_PassShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7859,7 +7977,7 @@ func (x *DB_PassShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShow.ProtoReflect.Descriptor instead. func (*DB_PassShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} } func (x *DB_PassShow) GetId() int32 { @@ -7901,7 +8019,7 @@ type DB_PassShowArray struct { func (x *DB_PassShowArray) Reset() { *x = DB_PassShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7914,7 +8032,7 @@ func (x *DB_PassShowArray) String() string { func (*DB_PassShowArray) ProtoMessage() {} func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7927,7 +8045,7 @@ func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShowArray.ProtoReflect.Descriptor instead. func (*DB_PassShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} } func (x *DB_PassShowArray) GetArr() []*DB_PassShow { @@ -7956,7 +8074,7 @@ type DB_PetSkill struct { func (x *DB_PetSkill) Reset() { *x = DB_PetSkill{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7969,7 +8087,7 @@ func (x *DB_PetSkill) String() string { func (*DB_PetSkill) ProtoMessage() {} func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7982,7 +8100,7 @@ func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkill.ProtoReflect.Descriptor instead. func (*DB_PetSkill) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} } func (x *DB_PetSkill) GetId() int32 { @@ -8059,7 +8177,7 @@ type DB_PetSkillArray struct { func (x *DB_PetSkillArray) Reset() { *x = DB_PetSkillArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8072,7 +8190,7 @@ func (x *DB_PetSkillArray) String() string { func (*DB_PetSkillArray) ProtoMessage() {} func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8085,7 +8203,7 @@ func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkillArray.ProtoReflect.Descriptor instead. func (*DB_PetSkillArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} } func (x *DB_PetSkillArray) GetArr() []*DB_PetSkill { @@ -8117,7 +8235,7 @@ type DB_PhoneLottery struct { func (x *DB_PhoneLottery) Reset() { *x = DB_PhoneLottery{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8130,7 +8248,7 @@ func (x *DB_PhoneLottery) String() string { func (*DB_PhoneLottery) ProtoMessage() {} func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8143,7 +8261,7 @@ func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLottery.ProtoReflect.Descriptor instead. func (*DB_PhoneLottery) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} } func (x *DB_PhoneLottery) GetId() int32 { @@ -8241,7 +8359,7 @@ type DB_PhoneLotteryArray struct { func (x *DB_PhoneLotteryArray) Reset() { *x = DB_PhoneLotteryArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8254,7 +8372,7 @@ func (x *DB_PhoneLotteryArray) String() string { func (*DB_PhoneLotteryArray) ProtoMessage() {} func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8267,7 +8385,7 @@ func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLotteryArray.ProtoReflect.Descriptor instead. func (*DB_PhoneLotteryArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} } func (x *DB_PhoneLotteryArray) GetArr() []*DB_PhoneLottery { @@ -8299,7 +8417,7 @@ type DB_PigBank_Diamond struct { func (x *DB_PigBank_Diamond) Reset() { *x = DB_PigBank_Diamond{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8312,7 +8430,7 @@ func (x *DB_PigBank_Diamond) String() string { func (*DB_PigBank_Diamond) ProtoMessage() {} func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8325,7 +8443,7 @@ func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_Diamond.ProtoReflect.Descriptor instead. func (*DB_PigBank_Diamond) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} } func (x *DB_PigBank_Diamond) GetId() int32 { @@ -8423,7 +8541,7 @@ type DB_PigBank_DiamondArray struct { func (x *DB_PigBank_DiamondArray) Reset() { *x = DB_PigBank_DiamondArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8436,7 +8554,7 @@ func (x *DB_PigBank_DiamondArray) String() string { func (*DB_PigBank_DiamondArray) ProtoMessage() {} func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8449,7 +8567,7 @@ func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_DiamondArray.ProtoReflect.Descriptor instead. func (*DB_PigBank_DiamondArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} } func (x *DB_PigBank_DiamondArray) GetArr() []*DB_PigBank_Diamond { @@ -8472,7 +8590,7 @@ type DB_Pigbank_Prop struct { func (x *DB_Pigbank_Prop) Reset() { *x = DB_Pigbank_Prop{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8485,7 +8603,7 @@ func (x *DB_Pigbank_Prop) String() string { func (*DB_Pigbank_Prop) ProtoMessage() {} func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8498,7 +8616,7 @@ func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_Prop.ProtoReflect.Descriptor instead. func (*DB_Pigbank_Prop) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} } func (x *DB_Pigbank_Prop) GetId() int32 { @@ -8533,7 +8651,7 @@ type DB_Pigbank_PropArray struct { func (x *DB_Pigbank_PropArray) Reset() { *x = DB_Pigbank_PropArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8546,7 +8664,7 @@ func (x *DB_Pigbank_PropArray) String() string { func (*DB_Pigbank_PropArray) ProtoMessage() {} func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8559,7 +8677,7 @@ func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_PropArray.ProtoReflect.Descriptor instead. func (*DB_Pigbank_PropArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} } func (x *DB_Pigbank_PropArray) GetArr() []*DB_Pigbank_Prop { @@ -8581,7 +8699,7 @@ type DB_PlayerExp struct { func (x *DB_PlayerExp) Reset() { *x = DB_PlayerExp{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8594,7 +8712,7 @@ func (x *DB_PlayerExp) String() string { func (*DB_PlayerExp) ProtoMessage() {} func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8607,7 +8725,7 @@ func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExp.ProtoReflect.Descriptor instead. func (*DB_PlayerExp) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} } func (x *DB_PlayerExp) GetId() int32 { @@ -8635,7 +8753,7 @@ type DB_PlayerExpArray struct { func (x *DB_PlayerExpArray) Reset() { *x = DB_PlayerExpArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8648,7 +8766,7 @@ func (x *DB_PlayerExpArray) String() string { func (*DB_PlayerExpArray) ProtoMessage() {} func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8661,7 +8779,7 @@ func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExpArray.ProtoReflect.Descriptor instead. func (*DB_PlayerExpArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} } func (x *DB_PlayerExpArray) GetArr() []*DB_PlayerExp { @@ -8699,7 +8817,7 @@ type DB_PlayerType struct { func (x *DB_PlayerType) Reset() { *x = DB_PlayerType{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8712,7 +8830,7 @@ func (x *DB_PlayerType) String() string { func (*DB_PlayerType) ProtoMessage() {} func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8725,7 +8843,7 @@ func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerType.ProtoReflect.Descriptor instead. func (*DB_PlayerType) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} } func (x *DB_PlayerType) GetId() int32 { @@ -8865,7 +8983,7 @@ type DB_PlayerTypeArray struct { func (x *DB_PlayerTypeArray) Reset() { *x = DB_PlayerTypeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8878,7 +8996,7 @@ func (x *DB_PlayerTypeArray) String() string { func (*DB_PlayerTypeArray) ProtoMessage() {} func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8891,7 +9009,7 @@ func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerTypeArray.ProtoReflect.Descriptor instead. func (*DB_PlayerTypeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} } func (x *DB_PlayerTypeArray) GetArr() []*DB_PlayerType { @@ -8915,7 +9033,7 @@ type DB_PotOdd struct { func (x *DB_PotOdd) Reset() { *x = DB_PotOdd{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8928,7 +9046,7 @@ func (x *DB_PotOdd) String() string { func (*DB_PotOdd) ProtoMessage() {} func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8941,7 +9059,7 @@ func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOdd.ProtoReflect.Descriptor instead. func (*DB_PotOdd) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} } func (x *DB_PotOdd) GetId() int32 { @@ -8983,7 +9101,7 @@ type DB_PotOddArray struct { func (x *DB_PotOddArray) Reset() { *x = DB_PotOddArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8996,7 +9114,7 @@ func (x *DB_PotOddArray) String() string { func (*DB_PotOddArray) ProtoMessage() {} func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9009,7 +9127,7 @@ func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOddArray.ProtoReflect.Descriptor instead. func (*DB_PotOddArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} } func (x *DB_PotOddArray) GetArr() []*DB_PotOdd { @@ -9028,12 +9146,13 @@ type DB_PropExchange struct { Group int32 `protobuf:"varint,2,opt,name=Group,proto3" json:"Group,omitempty"` Cost map[int64]int64 `protobuf:"bytes,3,rep,name=Cost,proto3" json:"Cost,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` Gain map[int64]int64 `protobuf:"bytes,4,rep,name=Gain,proto3" json:"Gain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` } func (x *DB_PropExchange) Reset() { *x = DB_PropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9046,7 +9165,7 @@ func (x *DB_PropExchange) String() string { func (*DB_PropExchange) ProtoMessage() {} func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9059,7 +9178,7 @@ func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchange.ProtoReflect.Descriptor instead. func (*DB_PropExchange) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} } func (x *DB_PropExchange) GetId() int32 { @@ -9090,6 +9209,13 @@ func (x *DB_PropExchange) GetGain() map[int64]int64 { return nil } +func (x *DB_PropExchange) GetTimes() int32 { + if x != nil { + return x.Times + } + return 0 +} + type DB_PropExchangeArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9101,7 +9227,7 @@ type DB_PropExchangeArray struct { func (x *DB_PropExchangeArray) Reset() { *x = DB_PropExchangeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9114,7 +9240,7 @@ func (x *DB_PropExchangeArray) String() string { func (*DB_PropExchangeArray) ProtoMessage() {} func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9127,7 +9253,7 @@ func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchangeArray.ProtoReflect.Descriptor instead. func (*DB_PropExchangeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} } func (x *DB_PropExchangeArray) GetArr() []*DB_PropExchange { @@ -9150,7 +9276,7 @@ type DB_RankCycle struct { func (x *DB_RankCycle) Reset() { *x = DB_RankCycle{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9163,7 +9289,7 @@ func (x *DB_RankCycle) String() string { func (*DB_RankCycle) ProtoMessage() {} func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9176,7 +9302,7 @@ func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycle.ProtoReflect.Descriptor instead. func (*DB_RankCycle) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} } func (x *DB_RankCycle) GetId() int32 { @@ -9211,7 +9337,7 @@ type DB_RankCycleArray struct { func (x *DB_RankCycleArray) Reset() { *x = DB_RankCycleArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9224,7 +9350,7 @@ func (x *DB_RankCycleArray) String() string { func (*DB_RankCycleArray) ProtoMessage() {} func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9237,7 +9363,7 @@ func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycleArray.ProtoReflect.Descriptor instead. func (*DB_RankCycleArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} } func (x *DB_RankCycleArray) GetArr() []*DB_RankCycle { @@ -9262,7 +9388,7 @@ type DB_RankLevel struct { func (x *DB_RankLevel) Reset() { *x = DB_RankLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9275,7 +9401,7 @@ func (x *DB_RankLevel) String() string { func (*DB_RankLevel) ProtoMessage() {} func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9288,7 +9414,7 @@ func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevel.ProtoReflect.Descriptor instead. func (*DB_RankLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} } func (x *DB_RankLevel) GetId() int32 { @@ -9337,7 +9463,7 @@ type DB_RankLevelArray struct { func (x *DB_RankLevelArray) Reset() { *x = DB_RankLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9350,7 +9476,7 @@ func (x *DB_RankLevelArray) String() string { func (*DB_RankLevelArray) ProtoMessage() {} func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9363,7 +9489,7 @@ func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevelArray.ProtoReflect.Descriptor instead. func (*DB_RankLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} } func (x *DB_RankLevelArray) GetArr() []*DB_RankLevel { @@ -9392,7 +9518,7 @@ type DB_RankReward struct { func (x *DB_RankReward) Reset() { *x = DB_RankReward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9405,7 +9531,7 @@ func (x *DB_RankReward) String() string { func (*DB_RankReward) ProtoMessage() {} func (x *DB_RankReward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9418,7 +9544,7 @@ func (x *DB_RankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankReward.ProtoReflect.Descriptor instead. func (*DB_RankReward) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} } func (x *DB_RankReward) GetId() int32 { @@ -9495,7 +9621,7 @@ type DB_RankRewardArray struct { func (x *DB_RankRewardArray) Reset() { *x = DB_RankRewardArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9508,7 +9634,7 @@ func (x *DB_RankRewardArray) String() string { func (*DB_RankRewardArray) ProtoMessage() {} func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9521,7 +9647,7 @@ func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankRewardArray.ProtoReflect.Descriptor instead. func (*DB_RankRewardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} } func (x *DB_RankRewardArray) GetArr() []*DB_RankReward { @@ -9543,7 +9669,7 @@ type DB_Sensitive_Words struct { func (x *DB_Sensitive_Words) Reset() { *x = DB_Sensitive_Words{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9556,7 +9682,7 @@ func (x *DB_Sensitive_Words) String() string { func (*DB_Sensitive_Words) ProtoMessage() {} func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9569,7 +9695,7 @@ func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_Words.ProtoReflect.Descriptor instead. func (*DB_Sensitive_Words) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_Sensitive_Words) GetId() int32 { @@ -9597,7 +9723,7 @@ type DB_Sensitive_WordsArray struct { func (x *DB_Sensitive_WordsArray) Reset() { *x = DB_Sensitive_WordsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9610,7 +9736,7 @@ func (x *DB_Sensitive_WordsArray) String() string { func (*DB_Sensitive_WordsArray) ProtoMessage() {} func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9623,7 +9749,7 @@ func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_WordsArray.ProtoReflect.Descriptor instead. func (*DB_Sensitive_WordsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { @@ -9657,7 +9783,7 @@ type DB_Skin struct { func (x *DB_Skin) Reset() { *x = DB_Skin{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9670,7 +9796,7 @@ func (x *DB_Skin) String() string { func (*DB_Skin) ProtoMessage() {} func (x *DB_Skin) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9683,7 +9809,7 @@ func (x *DB_Skin) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Skin.ProtoReflect.Descriptor instead. func (*DB_Skin) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_Skin) GetId() int32 { @@ -9795,7 +9921,7 @@ type DB_SkinArray struct { func (x *DB_SkinArray) Reset() { *x = DB_SkinArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9808,7 +9934,7 @@ func (x *DB_SkinArray) String() string { func (*DB_SkinArray) ProtoMessage() {} func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9821,7 +9947,7 @@ func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinArray.ProtoReflect.Descriptor instead. func (*DB_SkinArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_SkinArray) GetArr() []*DB_Skin { @@ -9849,7 +9975,7 @@ type DB_SkinLevel struct { func (x *DB_SkinLevel) Reset() { *x = DB_SkinLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9862,7 +9988,7 @@ func (x *DB_SkinLevel) String() string { func (*DB_SkinLevel) ProtoMessage() {} func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9875,7 +10001,7 @@ func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevel.ProtoReflect.Descriptor instead. func (*DB_SkinLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_SkinLevel) GetId() int32 { @@ -9945,7 +10071,7 @@ type DB_SkinLevelArray struct { func (x *DB_SkinLevelArray) Reset() { *x = DB_SkinLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9958,7 +10084,7 @@ func (x *DB_SkinLevelArray) String() string { func (*DB_SkinLevelArray) ProtoMessage() {} func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9971,7 +10097,7 @@ func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevelArray.ProtoReflect.Descriptor instead. func (*DB_SkinLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_SkinLevelArray) GetArr() []*DB_SkinLevel { @@ -10007,7 +10133,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10020,7 +10146,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10033,7 +10159,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -10159,7 +10285,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10172,7 +10298,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10185,7 +10311,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -10210,7 +10336,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10223,7 +10349,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10236,7 +10362,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} } func (x *DB_SystemChance) GetId() int32 { @@ -10285,7 +10411,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10298,7 +10424,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10311,7 +10437,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -10342,7 +10468,7 @@ type DB_Task struct { func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10355,7 +10481,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10368,7 +10494,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} } func (x *DB_Task) GetId() int32 { @@ -10459,7 +10585,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10472,7 +10598,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10485,7 +10611,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -10512,7 +10638,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10525,7 +10651,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10538,7 +10664,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -10601,7 +10727,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10614,7 +10740,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10627,7 +10753,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -10650,7 +10776,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10663,7 +10789,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10676,7 +10802,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} } func (x *DB_Tips) GetId() int32 { @@ -10711,7 +10837,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10724,7 +10850,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10737,7 +10863,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -10779,7 +10905,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10792,7 +10918,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10805,7 +10931,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} } func (x *DB_VIP) GetId() int32 { @@ -10973,7 +11099,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10986,7 +11112,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10999,7 +11125,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11024,7 +11150,7 @@ type DB_VIPShow struct { func (x *DB_VIPShow) Reset() { *x = DB_VIPShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11037,7 +11163,7 @@ func (x *DB_VIPShow) String() string { func (*DB_VIPShow) ProtoMessage() {} func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11050,7 +11176,7 @@ func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShow.ProtoReflect.Descriptor instead. func (*DB_VIPShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{144} } func (x *DB_VIPShow) GetId() int32 { @@ -11099,7 +11225,7 @@ type DB_VIPShowArray struct { func (x *DB_VIPShowArray) Reset() { *x = DB_VIPShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11112,7 +11238,7 @@ func (x *DB_VIPShowArray) String() string { func (*DB_VIPShowArray) ProtoMessage() {} func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11125,7 +11251,7 @@ func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShowArray.ProtoReflect.Descriptor instead. func (*DB_VIPShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{145} } func (x *DB_VIPShowArray) GetArr() []*DB_VIPShow { @@ -11140,471 +11266,967 @@ var File_protocol_server_pbdata_proto protoreflect.FileDescriptor var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, - 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x22, 0x37, 0x0a, 0x0f, 0x44, - 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x6f, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x43, 0x6f, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x12, 0x12, 0x0a, - 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x54, 0x79, 0x70, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x31, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x31, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x56, 0x0a, 0x0e, 0x44, 0x42, - 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, - 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xb9, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x43, + 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, + 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x69, 0x6e, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, + 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, + 0x43, 0x6f, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x62, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, - 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, - 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, - 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf6, 0x03, 0x0a, - 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, + 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x73, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, - 0x69, 0x63, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, - 0x63, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x47, - 0x6f, 0x6c, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x63, - 0x6f, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, - 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, - 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0d, 0x44, 0x42, - 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, - 0x6c, 0x61, 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, - 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x4a, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, - 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, - 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, - 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, - 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, - 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, - 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, - 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x43, 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, - 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, - 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x37, 0x0a, - 0x0f, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, - 0x44, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x96, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, - 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, - 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, - 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, - 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, - 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, - 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, - 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, - 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, - 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd1, 0x01, 0x0a, - 0x13, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x65, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, - 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x22, 0x49, 0x0a, 0x18, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2d, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, - 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x02, 0x0a, 0x12, - 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, - 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, - 0x53, 0x74, 0x65, 0x70, 0x12, 0x30, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x48, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x65, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x67, - 0x68, 0x74, 0x53, 0x74, 0x65, 0x70, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x48, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, - 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, - 0x56, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, - 0x56, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa9, 0x01, - 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, - 0x0a, 0x0b, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x42, 0x6f, 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x37, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, - 0x65, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, - 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, - 0x61, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4a, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x43, - 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, - 0x6f, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, - 0x47, 0x6f, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x91, 0x07, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, - 0x6c, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, - 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, - 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, - 0x6f, 0x77, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, - 0x68, 0x6f, 0x77, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, - 0x50, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, - 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x44, 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x44, 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, - 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, - 0x69, 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x45, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, - 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, - 0x6b, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, - 0x6b, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x6f, - 0x73, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x69, 0x65, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x68, 0x61, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x5a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x5a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, - 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, - 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x46, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x46, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, - 0x69, 0x73, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0a, - 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, - 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, - 0x70, 0x65, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, - 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x63, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, - 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, - 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0xed, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, - 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, - 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, - 0x6c, 0x64, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, - 0x6c, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x42, - 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, - 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, - 0x6f, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, - 0x6f, 0x6d, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xda, - 0x03, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x43, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x47, 0x43, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x75, 0x74, - 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x75, - 0x74, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x72, 0x79, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x75, 0x72, 0x79, 0x22, 0x3b, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, - 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, - 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x22, 0x47, 0x0a, - 0x17, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, - 0x64, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, - 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x46, 0x6f, - 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, - 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x30, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, - 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x52, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, - 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x41, + 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x75, 0x72, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, + 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, + 0x79, 0x70, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, + 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x31, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x31, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x56, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x6e, + 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x20, 0x0a, + 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x62, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x44, 0x65, 0x73, 0x63, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, + 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, + 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf6, 0x03, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, - 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x1d, 0x44, 0x42, 0x5f, 0x46, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x49, + 0x63, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x49, 0x63, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, + 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, + 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, + 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, + 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4f, + 0x64, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x4f, 0x64, 0x64, 0x73, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4a, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, + 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, + 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, + 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, + 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, + 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x96, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x59, 0x75, 0x4c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, + 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, + 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, + 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, + 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x11, + 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x59, 0x75, 0x4c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x44, 0x42, + 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x49, 0x0a, + 0x18, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2d, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x11, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, + 0x70, 0x12, 0x30, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, + 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x65, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x67, 0x68, 0x74, 0x53, + 0x74, 0x65, 0x70, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x48, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x46, 0x6c, + 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, + 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x56, 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x44, + 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x39, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x37, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x45, + 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, + 0x61, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4a, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, + 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x6f, 0x6f, 0x6d, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x91, 0x07, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, + 0x63, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x43, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x77, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, 0x6f, 0x77, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, + 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x52, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x52, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, + 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x68, + 0x61, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, + 0x73, 0x68, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x73, 0x6f, + 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, + 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x21, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x73, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x69, 0x73, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, + 0x69, 0x73, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x5f, + 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x46, 0x69, + 0x73, 0x68, 0x4f, 0x75, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x63, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, + 0x50, 0x61, 0x74, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xed, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, + 0x6f, 0x6c, 0x64, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, + 0x6f, 0x6c, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x6f, 0x73, 0x73, + 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x42, 0x6f, + 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, + 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x6f, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, + 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, + 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xda, 0x03, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, + 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x49, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x47, 0x43, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, + 0x43, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x72, 0x79, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x46, 0x75, 0x72, 0x79, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x46, + 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, + 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, + 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, + 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, + 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, + 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, + 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, + 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, + 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x30, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, + 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x52, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, + 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x46, 0x6f, + 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, + 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x1d, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, + 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, + 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x72, 0x75, 0x65, + 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, + 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x22, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x37, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, + 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xdf, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x47, + 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, + 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x12, + 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4c, 0x56, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, + 0x65, 0x44, 0x69, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, + 0x44, 0x69, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x22, + 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, + 0x70, 0x74, 0x63, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, + 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, + 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, + 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, + 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf5, 0x11, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, + 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x6b, + 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x65, 0x73, + 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, + 0x77, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, + 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, + 0x4b, 0x69, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x54, 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, + 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x42, + 0x65, 0x74, 0x44, 0x65, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x42, 0x65, 0x74, + 0x44, 0x65, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x6f, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x42, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x69, 0x18, 0x1a, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x02, 0x41, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x52, + 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1f, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, + 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, 0x67, 0x18, 0x21, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, + 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x22, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, + 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x61, + 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x61, 0x6d, 0x65, + 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, + 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, + 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x50, + 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x24, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, + 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, + 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x54, 0x72, 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x2f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, + 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, + 0x72, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x35, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4a, 0x61, 0x63, + 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, + 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x38, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x49, + 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x18, 0x3b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, + 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, + 0x28, 0x0a, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, + 0x65, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, + 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, + 0x77, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x1c, 0x0a, + 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x46, + 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x40, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x43, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, 0x44, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x45, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, + 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x18, + 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xc1, 0x05, 0x0a, 0x0b, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, + 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x13, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, + 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x11, 0x44, 0x42, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, + 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, + 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x75, + 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x75, + 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, + 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, + 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x64, 0x0a, 0x0e, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, + 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, + 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x3b, 0x0a, + 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa0, 0x01, 0x0a, 0x14, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x22, 0x4b, 0x0a, + 0x19, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf9, 0x01, 0x0a, 0x0b, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x5f, 0x50, 0x65, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, + 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, + 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, + 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 0x6c, 0x65, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa3, 0x01, + 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x36, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, + 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, + 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf1, 0x02, 0x0a, + 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x61, + 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, + 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, + 0x71, 0x75, 0x69, 0x74, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, + 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x76, 0x0a, 0x14, 0x44, + 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, + 0x64, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, + 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, + 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, + 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, + 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, + 0x35, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, + 0x64, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, + 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x12, + 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x47, 0x0a, + 0x17, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, + 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4e, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x9d, 0x01, 0x0a, 0x19, + 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, @@ -11613,1034 +12235,556 @@ var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x22, 0x44, - 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x37, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, - 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xdf, 0x02, 0x0a, 0x0d, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, - 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x22, 0x3d, 0x0a, 0x12, - 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, - 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, - 0x75, 0x6d, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, - 0x70, 0x74, 0x63, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x0f, 0x44, 0x42, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, - 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, - 0x75, 0x44, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, - 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, - 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, - 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, - 0x4d, 0x61, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, - 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1e, 0x44, + 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x33, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x3a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, + 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x22, 0x3b, + 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x2d, 0x0a, 0x07, 0x44, + 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, + 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, + 0x0a, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, + 0x42, 0x6f, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x31, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x4e, + 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, + 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, + 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb0, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4e, 0x65, + 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x42, + 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x42, 0x6f, 0x6e, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, + 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x61, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, + 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, + 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, + 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, + 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, + 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, + 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, 0x63, + 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, + 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x61, + 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, + 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x44, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x44, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, + 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, + 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, + 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4f, 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, + 0x64, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, + 0x64, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf5, 0x11, 0x0a, 0x0b, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, - 0x64, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, - 0x64, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, - 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, - 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, - 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, - 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x46, 0x65, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x54, - 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, - 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, - 0x72, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x42, 0x65, 0x74, 0x44, 0x65, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x42, 0x65, 0x74, 0x44, 0x65, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x6f, 0x74, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x69, 0x18, 0x1a, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x41, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, - 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x10, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, - 0x70, 0x6f, 0x74, 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, - 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, - 0x67, 0x18, 0x21, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, - 0x6d, 0x52, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, 0x61, 0x6b, - 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x6f, 0x62, - 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x6f, - 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x54, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x54, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6d, 0x65, - 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, - 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x61, - 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x27, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x12, 0x1c, 0x0a, 0x09, - 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x2b, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, - 0x4e, 0x75, 0x6d, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x54, 0x72, 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, - 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, - 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x6f, 0x64, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, - 0x61, 0x74, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, 0x74, - 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x65, - 0x74, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, - 0x74, 0x74, 0x65, 0x72, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x74, - 0x74, 0x65, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x74, - 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x35, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x36, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, - 0x12, 0x1e, 0x0a, 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x37, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, - 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x38, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x12, 0x28, - 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, - 0x6e, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, - 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x3c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, - 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x42, 0x6f, 0x73, - 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x44, 0x72, 0x61, 0x77, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, - 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x18, 0x3f, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x40, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x41, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x69, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x43, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, - 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, - 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, - 0x70, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x44, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x61, 0x78, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, - 0x61, 0x78, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, - 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x48, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, - 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xc1, 0x05, - 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, - 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x12, - 0x16, 0x0a, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x61, 0x69, - 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x47, 0x61, 0x69, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x08, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x47, - 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, + 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, 0x0a, 0x12, 0x44, + 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, + 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, + 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, + 0x64, 0x12, 0x41, 0x0a, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x47, + 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x47, 0x6f, 0x6c, + 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1c, + 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x47, 0x6f, + 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, + 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, + 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, + 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, + 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, + 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, + 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, + 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, + 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, + 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, + 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, + 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, + 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, + 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, + 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, + 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, + 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, + 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xad, 0x02, 0x0a, 0x0f, 0x44, + 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, + 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, + 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, - 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, - 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, - 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, - 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, - 0x65, 0x44, 0x69, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, - 0x44, 0x69, 0x66, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x64, - 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, - 0x47, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x74, 0x65, - 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, - 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, - 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, - 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa0, 0x01, - 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, - 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf9, 0x01, - 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, - 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, - 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, - 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, - 0x6f, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0xa3, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, - 0x74, 0x42, 0x6f, 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xf1, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, - 0x64, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, - 0x2e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, - 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x76, - 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, - 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, - 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, - 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, - 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, - 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, - 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, - 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, - 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, - 0x64, 0x64, 0x73, 0x35, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, - 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, - 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, - 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, - 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, - 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, - 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4e, 0x0a, 0x10, 0x44, 0x42, 0x5f, - 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, - 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, - 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x9d, - 0x01, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, - 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x55, - 0x0a, 0x1e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x33, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, - 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x3a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, - 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, - 0x72, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, - 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x2d, - 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, - 0x0c, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x30, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, - 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x31, 0x0a, 0x0b, 0x44, - 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, - 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, - 0x47, 0x69, 0x72, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb0, 0x02, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x12, - 0x0a, 0x04, 0x42, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x42, 0x6f, - 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, - 0x64, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, - 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, - 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x6f, - 0x70, 0x44, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x72, 0x6f, 0x70, - 0x44, 0x65, 0x63, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, - 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, - 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, - 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, - 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, - 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, - 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, - 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, - 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, - 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, - 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, - 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, - 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, - 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, - 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, - 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, + 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, - 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, - 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, - 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, - 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, - 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, - 0x64, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, - 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, - 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, - 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, - 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, - 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, - 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, - 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, - 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, - 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, - 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, - 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, - 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, - 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, - 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, - 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, - 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, - 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, - 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, - 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, - 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, - 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x04, 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, - 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, - 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, - 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, - 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, - 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, - 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, - 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, - 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, - 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, - 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, - 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, - 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, - 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, - 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, - 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, - 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, - 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, - 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, - 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, - 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, - 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, - 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, - 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, - 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, - 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, - 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, - 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, - 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, - 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, - 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, - 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, - 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, - 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, - 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, - 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, - 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, - 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, - 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, + 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, + 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, + 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, + 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, + 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, + 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, + 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, + 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, + 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, + 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, + 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, + 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, + 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, + 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, - 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, - 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, - 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, - 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, - 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, - 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, - 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, - 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, - 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, - 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, - 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, - 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, - 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, - 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, - 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, - 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, - 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, - 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, - 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, - 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, + 0x63, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x44, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, + 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, + 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, + 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, - 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, - 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, - 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, - 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, - 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, - 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, + 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, + 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, + 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, + 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, + 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, + 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, + 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, + 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, + 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, + 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, + 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, + 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, + 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, + 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, + 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, + 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, + 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, + 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, + 0x77, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7c, 0x0a, 0x0a, 0x44, + 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, + 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -12655,263 +12799,268 @@ func file_protocol_server_pbdata_proto_rawDescGZIP() []byte { return file_protocol_server_pbdata_proto_rawDescData } -var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 160) +var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 163) var file_protocol_server_pbdata_proto_goTypes = []interface{}{ - (*DB_ActSign)(nil), // 0: server.DB_ActSign - (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray - (*DB_Activity1)(nil), // 2: server.DB_Activity1 - (*DB_Activity1Array)(nil), // 3: server.DB_Activity1Array - (*DB_AnimalColor)(nil), // 4: server.DB_AnimalColor - (*DB_AnimalColorArray)(nil), // 5: server.DB_AnimalColorArray - (*DB_ArtilleryRate)(nil), // 6: server.DB_ArtilleryRate - (*DB_ArtilleryRateArray)(nil), // 7: server.DB_ArtilleryRateArray - (*DB_ArtillerySkin)(nil), // 8: server.DB_ArtillerySkin - (*DB_ArtillerySkinArray)(nil), // 9: server.DB_ArtillerySkinArray - (*DB_BlackWhite)(nil), // 10: server.DB_BlackWhite - (*DB_BlackWhiteArray)(nil), // 11: server.DB_BlackWhiteArray - (*DB_CardsJD)(nil), // 12: server.DB_CardsJD - (*DB_CardsJDArray)(nil), // 13: server.DB_CardsJDArray - (*DB_CardsYuLe)(nil), // 14: server.DB_CardsYuLe - (*DB_CardsYuLeArray)(nil), // 15: server.DB_CardsYuLeArray - (*DB_ChessBilledRules)(nil), // 16: server.DB_ChessBilledRules - (*DB_ChessBilledRulesArray)(nil), // 17: server.DB_ChessBilledRulesArray - (*DB_ChessMatchRules)(nil), // 18: server.DB_ChessMatchRules - (*DB_ChessMatchRulesArray)(nil), // 19: server.DB_ChessMatchRulesArray - (*DB_ChessRank)(nil), // 20: server.DB_ChessRank - (*DB_ChessRankArray)(nil), // 21: server.DB_ChessRankArray - (*DB_ClientVer)(nil), // 22: server.DB_ClientVer - (*DB_ClientVerArray)(nil), // 23: server.DB_ClientVerArray - (*DB_CollectBox)(nil), // 24: server.DB_CollectBox - (*DB_CollectBoxArray)(nil), // 25: server.DB_CollectBoxArray - (*DB_CollectBoxGain)(nil), // 26: server.DB_CollectBoxGain - (*DB_CollectBoxGainArray)(nil), // 27: server.DB_CollectBoxGainArray - (*DB_CrashSearch)(nil), // 28: server.DB_CrashSearch - (*DB_CrashSearchArray)(nil), // 29: server.DB_CrashSearchArray - (*DB_Createroom)(nil), // 30: server.DB_Createroom - (*DB_CreateroomArray)(nil), // 31: server.DB_CreateroomArray - (*DB_Fish)(nil), // 32: server.DB_Fish - (*DB_FishArray)(nil), // 33: server.DB_FishArray - (*DB_FishOut)(nil), // 34: server.DB_FishOut - (*DB_FishOutArray)(nil), // 35: server.DB_FishOutArray - (*DB_FishPath)(nil), // 36: server.DB_FishPath - (*DB_FishPathArray)(nil), // 37: server.DB_FishPathArray - (*DB_FishRoom)(nil), // 38: server.DB_FishRoom - (*DB_FishRoomArray)(nil), // 39: server.DB_FishRoomArray - (*DB_FishSkill)(nil), // 40: server.DB_FishSkill - (*DB_FishSkillArray)(nil), // 41: server.DB_FishSkillArray - (*DB_FortuneGod_Odds)(nil), // 42: server.DB_FortuneGod_Odds - (*DB_FortuneGod_OddsArray)(nil), // 43: server.DB_FortuneGod_OddsArray - (*DB_FortuneGod_TurnRate)(nil), // 44: server.DB_FortuneGod_TurnRate - (*DB_FortuneGod_TurnRateArray)(nil), // 45: server.DB_FortuneGod_TurnRateArray - (*DB_FortuneGod_Weight)(nil), // 46: server.DB_FortuneGod_Weight - (*DB_FortuneGod_WeightArray)(nil), // 47: server.DB_FortuneGod_WeightArray - (*DB_FortuneGod_WeightCondition)(nil), // 48: server.DB_FortuneGod_WeightCondition - (*DB_FortuneGod_WeightConditionArray)(nil), // 49: server.DB_FortuneGod_WeightConditionArray - (*DB_GamMatchLV)(nil), // 50: server.DB_GamMatchLV - (*DB_GamMatchLVArray)(nil), // 51: server.DB_GamMatchLVArray - (*DB_GameBankruptcy)(nil), // 52: server.DB_GameBankruptcy - (*DB_GameBankruptcyArray)(nil), // 53: server.DB_GameBankruptcyArray - (*DB_GameCoinPool)(nil), // 54: server.DB_GameCoinPool - (*DB_GameCoinPoolArray)(nil), // 55: server.DB_GameCoinPoolArray - (*DB_GameFree)(nil), // 56: server.DB_GameFree - (*DB_GameFreeArray)(nil), // 57: server.DB_GameFreeArray - (*DB_GameItem)(nil), // 58: server.DB_GameItem - (*DB_GameItemArray)(nil), // 59: server.DB_GameItemArray - (*DB_GameMatchLevel)(nil), // 60: server.DB_GameMatchLevel - (*DB_GameMatchLevelArray)(nil), // 61: server.DB_GameMatchLevelArray - (*DB_GameRule)(nil), // 62: server.DB_GameRule - (*DB_GameRuleArray)(nil), // 63: server.DB_GameRuleArray - (*DB_GameSubsidy)(nil), // 64: server.DB_GameSubsidy - (*DB_GameSubsidyArray)(nil), // 65: server.DB_GameSubsidyArray - (*DB_Game_Drop)(nil), // 66: server.DB_Game_Drop - (*DB_Game_DropArray)(nil), // 67: server.DB_Game_DropArray - (*DB_Game_Introduction)(nil), // 68: server.DB_Game_Introduction - (*DB_Game_IntroductionArray)(nil), // 69: server.DB_Game_IntroductionArray - (*DB_Game_Pet)(nil), // 70: server.DB_Game_Pet - (*DB_Game_PetArray)(nil), // 71: server.DB_Game_PetArray - (*DB_Game_Role)(nil), // 72: server.DB_Game_Role - (*DB_Game_RoleArray)(nil), // 73: server.DB_Game_RoleArray - (*DB_GiftBox)(nil), // 74: server.DB_GiftBox - (*DB_GiftBoxArray)(nil), // 75: server.DB_GiftBoxArray - (*DB_GiftCard)(nil), // 76: server.DB_GiftCard - (*DB_GiftCardArray)(nil), // 77: server.DB_GiftCardArray - (*DB_IceAgeElementRate)(nil), // 78: server.DB_IceAgeElementRate - (*DB_IceAgeElementRateArray)(nil), // 79: server.DB_IceAgeElementRateArray - (*DB_Legend_Odds)(nil), // 80: server.DB_Legend_Odds - (*DB_Legend_OddsArray)(nil), // 81: server.DB_Legend_OddsArray - (*DB_Legend_TurnRate)(nil), // 82: server.DB_Legend_TurnRate - (*DB_Legend_TurnRateArray)(nil), // 83: server.DB_Legend_TurnRateArray - (*DB_Legend_Weight)(nil), // 84: server.DB_Legend_Weight - (*DB_Legend_WeightArray)(nil), // 85: server.DB_Legend_WeightArray - (*DB_Legend_WeightCondition)(nil), // 86: server.DB_Legend_WeightCondition - (*DB_Legend_WeightConditionArray)(nil), // 87: server.DB_Legend_WeightConditionArray - (*DB_MatchRank)(nil), // 88: server.DB_MatchRank - (*DB_MatchRankArray)(nil), // 89: server.DB_MatchRankArray - (*DB_Name)(nil), // 90: server.DB_Name - (*DB_NameArray)(nil), // 91: server.DB_NameArray - (*DB_NameBoy)(nil), // 92: server.DB_NameBoy - (*DB_NameBoyArray)(nil), // 93: server.DB_NameBoyArray - (*DB_NameGirl)(nil), // 94: server.DB_NameGirl - (*DB_NameGirlArray)(nil), // 95: server.DB_NameGirlArray - (*DB_NewPlayer)(nil), // 96: server.DB_NewPlayer - (*DB_NewPlayerArray)(nil), // 97: server.DB_NewPlayerArray - (*DB_NewYearActivity)(nil), // 98: server.DB_NewYearActivity - (*DB_NewYearActivityArray)(nil), // 99: server.DB_NewYearActivityArray - (*DB_PassShow)(nil), // 100: server.DB_PassShow - (*DB_PassShowArray)(nil), // 101: server.DB_PassShowArray - (*DB_PetSkill)(nil), // 102: server.DB_PetSkill - (*DB_PetSkillArray)(nil), // 103: server.DB_PetSkillArray - (*DB_PhoneLottery)(nil), // 104: server.DB_PhoneLottery - (*DB_PhoneLotteryArray)(nil), // 105: server.DB_PhoneLotteryArray - (*DB_PigBank_Diamond)(nil), // 106: server.DB_PigBank_Diamond - (*DB_PigBank_DiamondArray)(nil), // 107: server.DB_PigBank_DiamondArray - (*DB_Pigbank_Prop)(nil), // 108: server.DB_Pigbank_Prop - (*DB_Pigbank_PropArray)(nil), // 109: server.DB_Pigbank_PropArray - (*DB_PlayerExp)(nil), // 110: server.DB_PlayerExp - (*DB_PlayerExpArray)(nil), // 111: server.DB_PlayerExpArray - (*DB_PlayerType)(nil), // 112: server.DB_PlayerType - (*DB_PlayerTypeArray)(nil), // 113: server.DB_PlayerTypeArray - (*DB_PotOdd)(nil), // 114: server.DB_PotOdd - (*DB_PotOddArray)(nil), // 115: server.DB_PotOddArray - (*DB_PropExchange)(nil), // 116: server.DB_PropExchange - (*DB_PropExchangeArray)(nil), // 117: server.DB_PropExchangeArray - (*DB_RankCycle)(nil), // 118: server.DB_RankCycle - (*DB_RankCycleArray)(nil), // 119: server.DB_RankCycleArray - (*DB_RankLevel)(nil), // 120: server.DB_RankLevel - (*DB_RankLevelArray)(nil), // 121: server.DB_RankLevelArray - (*DB_RankReward)(nil), // 122: server.DB_RankReward - (*DB_RankRewardArray)(nil), // 123: server.DB_RankRewardArray - (*DB_Sensitive_Words)(nil), // 124: server.DB_Sensitive_Words - (*DB_Sensitive_WordsArray)(nil), // 125: server.DB_Sensitive_WordsArray - (*DB_Skin)(nil), // 126: server.DB_Skin - (*DB_SkinArray)(nil), // 127: server.DB_SkinArray - (*DB_SkinLevel)(nil), // 128: server.DB_SkinLevel - (*DB_SkinLevelArray)(nil), // 129: server.DB_SkinLevelArray - (*DB_SlotRateWeight)(nil), // 130: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 131: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 132: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 133: server.DB_SystemChanceArray - (*DB_Task)(nil), // 134: server.DB_Task - (*DB_TaskArray)(nil), // 135: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 136: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 137: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 138: server.DB_Tips - (*DB_TipsArray)(nil), // 139: server.DB_TipsArray - (*DB_VIP)(nil), // 140: server.DB_VIP - (*DB_VIPArray)(nil), // 141: server.DB_VIPArray - (*DB_VIPShow)(nil), // 142: server.DB_VIPShow - (*DB_VIPShowArray)(nil), // 143: server.DB_VIPShowArray - nil, // 144: server.DB_CollectBox.ItemIDEntry - nil, // 145: server.DB_GameItem.GainEntry - nil, // 146: server.DB_GameItem.CompoundEntry - nil, // 147: server.DB_GiftBox.ItemIDEntry - nil, // 148: server.DB_GiftCard.RewardsEntry - nil, // 149: server.DB_GiftCard.DayRewardsEntry - nil, // 150: server.DB_PetSkill.ItemConsumEntry - nil, // 151: server.DB_PigBank_Diamond.GoldExcEntry - nil, // 152: server.DB_PigBank_Diamond.DiamondExcEntry - nil, // 153: server.DB_PropExchange.CostEntry - nil, // 154: server.DB_PropExchange.GainEntry - nil, // 155: server.DB_Skin.UnlockItemEntry - nil, // 156: server.DB_SkinLevel.UpItemEntry - nil, // 157: server.DB_Task.AwardEntry - nil, // 158: server.DB_VIP.Privilege7Entry - nil, // 159: server.DB_VIP.AwardEntry + (*DB_ACTPushCoin)(nil), // 0: server.DB_ACTPushCoin + (*DB_ACTPushCoinArray)(nil), // 1: server.DB_ACTPushCoinArray + (*DB_ActSign)(nil), // 2: server.DB_ActSign + (*DB_ActSignArray)(nil), // 3: server.DB_ActSignArray + (*DB_Activity1)(nil), // 4: server.DB_Activity1 + (*DB_Activity1Array)(nil), // 5: server.DB_Activity1Array + (*DB_AnimalColor)(nil), // 6: server.DB_AnimalColor + (*DB_AnimalColorArray)(nil), // 7: server.DB_AnimalColorArray + (*DB_ArtilleryRate)(nil), // 8: server.DB_ArtilleryRate + (*DB_ArtilleryRateArray)(nil), // 9: server.DB_ArtilleryRateArray + (*DB_ArtillerySkin)(nil), // 10: server.DB_ArtillerySkin + (*DB_ArtillerySkinArray)(nil), // 11: server.DB_ArtillerySkinArray + (*DB_BlackWhite)(nil), // 12: server.DB_BlackWhite + (*DB_BlackWhiteArray)(nil), // 13: server.DB_BlackWhiteArray + (*DB_CardsJD)(nil), // 14: server.DB_CardsJD + (*DB_CardsJDArray)(nil), // 15: server.DB_CardsJDArray + (*DB_CardsYuLe)(nil), // 16: server.DB_CardsYuLe + (*DB_CardsYuLeArray)(nil), // 17: server.DB_CardsYuLeArray + (*DB_ChessBilledRules)(nil), // 18: server.DB_ChessBilledRules + (*DB_ChessBilledRulesArray)(nil), // 19: server.DB_ChessBilledRulesArray + (*DB_ChessMatchRules)(nil), // 20: server.DB_ChessMatchRules + (*DB_ChessMatchRulesArray)(nil), // 21: server.DB_ChessMatchRulesArray + (*DB_ChessRank)(nil), // 22: server.DB_ChessRank + (*DB_ChessRankArray)(nil), // 23: server.DB_ChessRankArray + (*DB_ClientVer)(nil), // 24: server.DB_ClientVer + (*DB_ClientVerArray)(nil), // 25: server.DB_ClientVerArray + (*DB_CollectBox)(nil), // 26: server.DB_CollectBox + (*DB_CollectBoxArray)(nil), // 27: server.DB_CollectBoxArray + (*DB_CollectBoxGain)(nil), // 28: server.DB_CollectBoxGain + (*DB_CollectBoxGainArray)(nil), // 29: server.DB_CollectBoxGainArray + (*DB_CrashSearch)(nil), // 30: server.DB_CrashSearch + (*DB_CrashSearchArray)(nil), // 31: server.DB_CrashSearchArray + (*DB_Createroom)(nil), // 32: server.DB_Createroom + (*DB_CreateroomArray)(nil), // 33: server.DB_CreateroomArray + (*DB_Fish)(nil), // 34: server.DB_Fish + (*DB_FishArray)(nil), // 35: server.DB_FishArray + (*DB_FishOut)(nil), // 36: server.DB_FishOut + (*DB_FishOutArray)(nil), // 37: server.DB_FishOutArray + (*DB_FishPath)(nil), // 38: server.DB_FishPath + (*DB_FishPathArray)(nil), // 39: server.DB_FishPathArray + (*DB_FishRoom)(nil), // 40: server.DB_FishRoom + (*DB_FishRoomArray)(nil), // 41: server.DB_FishRoomArray + (*DB_FishSkill)(nil), // 42: server.DB_FishSkill + (*DB_FishSkillArray)(nil), // 43: server.DB_FishSkillArray + (*DB_FortuneGod_Odds)(nil), // 44: server.DB_FortuneGod_Odds + (*DB_FortuneGod_OddsArray)(nil), // 45: server.DB_FortuneGod_OddsArray + (*DB_FortuneGod_TurnRate)(nil), // 46: server.DB_FortuneGod_TurnRate + (*DB_FortuneGod_TurnRateArray)(nil), // 47: server.DB_FortuneGod_TurnRateArray + (*DB_FortuneGod_Weight)(nil), // 48: server.DB_FortuneGod_Weight + (*DB_FortuneGod_WeightArray)(nil), // 49: server.DB_FortuneGod_WeightArray + (*DB_FortuneGod_WeightCondition)(nil), // 50: server.DB_FortuneGod_WeightCondition + (*DB_FortuneGod_WeightConditionArray)(nil), // 51: server.DB_FortuneGod_WeightConditionArray + (*DB_GamMatchLV)(nil), // 52: server.DB_GamMatchLV + (*DB_GamMatchLVArray)(nil), // 53: server.DB_GamMatchLVArray + (*DB_GameBankruptcy)(nil), // 54: server.DB_GameBankruptcy + (*DB_GameBankruptcyArray)(nil), // 55: server.DB_GameBankruptcyArray + (*DB_GameCoinPool)(nil), // 56: server.DB_GameCoinPool + (*DB_GameCoinPoolArray)(nil), // 57: server.DB_GameCoinPoolArray + (*DB_GameFree)(nil), // 58: server.DB_GameFree + (*DB_GameFreeArray)(nil), // 59: server.DB_GameFreeArray + (*DB_GameItem)(nil), // 60: server.DB_GameItem + (*DB_GameItemArray)(nil), // 61: server.DB_GameItemArray + (*DB_GameMatchLevel)(nil), // 62: server.DB_GameMatchLevel + (*DB_GameMatchLevelArray)(nil), // 63: server.DB_GameMatchLevelArray + (*DB_GameRule)(nil), // 64: server.DB_GameRule + (*DB_GameRuleArray)(nil), // 65: server.DB_GameRuleArray + (*DB_GameSubsidy)(nil), // 66: server.DB_GameSubsidy + (*DB_GameSubsidyArray)(nil), // 67: server.DB_GameSubsidyArray + (*DB_Game_Drop)(nil), // 68: server.DB_Game_Drop + (*DB_Game_DropArray)(nil), // 69: server.DB_Game_DropArray + (*DB_Game_Introduction)(nil), // 70: server.DB_Game_Introduction + (*DB_Game_IntroductionArray)(nil), // 71: server.DB_Game_IntroductionArray + (*DB_Game_Pet)(nil), // 72: server.DB_Game_Pet + (*DB_Game_PetArray)(nil), // 73: server.DB_Game_PetArray + (*DB_Game_Role)(nil), // 74: server.DB_Game_Role + (*DB_Game_RoleArray)(nil), // 75: server.DB_Game_RoleArray + (*DB_GiftBox)(nil), // 76: server.DB_GiftBox + (*DB_GiftBoxArray)(nil), // 77: server.DB_GiftBoxArray + (*DB_GiftCard)(nil), // 78: server.DB_GiftCard + (*DB_GiftCardArray)(nil), // 79: server.DB_GiftCardArray + (*DB_IceAgeElementRate)(nil), // 80: server.DB_IceAgeElementRate + (*DB_IceAgeElementRateArray)(nil), // 81: server.DB_IceAgeElementRateArray + (*DB_Legend_Odds)(nil), // 82: server.DB_Legend_Odds + (*DB_Legend_OddsArray)(nil), // 83: server.DB_Legend_OddsArray + (*DB_Legend_TurnRate)(nil), // 84: server.DB_Legend_TurnRate + (*DB_Legend_TurnRateArray)(nil), // 85: server.DB_Legend_TurnRateArray + (*DB_Legend_Weight)(nil), // 86: server.DB_Legend_Weight + (*DB_Legend_WeightArray)(nil), // 87: server.DB_Legend_WeightArray + (*DB_Legend_WeightCondition)(nil), // 88: server.DB_Legend_WeightCondition + (*DB_Legend_WeightConditionArray)(nil), // 89: server.DB_Legend_WeightConditionArray + (*DB_MatchRank)(nil), // 90: server.DB_MatchRank + (*DB_MatchRankArray)(nil), // 91: server.DB_MatchRankArray + (*DB_Name)(nil), // 92: server.DB_Name + (*DB_NameArray)(nil), // 93: server.DB_NameArray + (*DB_NameBoy)(nil), // 94: server.DB_NameBoy + (*DB_NameBoyArray)(nil), // 95: server.DB_NameBoyArray + (*DB_NameGirl)(nil), // 96: server.DB_NameGirl + (*DB_NameGirlArray)(nil), // 97: server.DB_NameGirlArray + (*DB_NewPlayer)(nil), // 98: server.DB_NewPlayer + (*DB_NewPlayerArray)(nil), // 99: server.DB_NewPlayerArray + (*DB_NewYearActivity)(nil), // 100: server.DB_NewYearActivity + (*DB_NewYearActivityArray)(nil), // 101: server.DB_NewYearActivityArray + (*DB_PassShow)(nil), // 102: server.DB_PassShow + (*DB_PassShowArray)(nil), // 103: server.DB_PassShowArray + (*DB_PetSkill)(nil), // 104: server.DB_PetSkill + (*DB_PetSkillArray)(nil), // 105: server.DB_PetSkillArray + (*DB_PhoneLottery)(nil), // 106: server.DB_PhoneLottery + (*DB_PhoneLotteryArray)(nil), // 107: server.DB_PhoneLotteryArray + (*DB_PigBank_Diamond)(nil), // 108: server.DB_PigBank_Diamond + (*DB_PigBank_DiamondArray)(nil), // 109: server.DB_PigBank_DiamondArray + (*DB_Pigbank_Prop)(nil), // 110: server.DB_Pigbank_Prop + (*DB_Pigbank_PropArray)(nil), // 111: server.DB_Pigbank_PropArray + (*DB_PlayerExp)(nil), // 112: server.DB_PlayerExp + (*DB_PlayerExpArray)(nil), // 113: server.DB_PlayerExpArray + (*DB_PlayerType)(nil), // 114: server.DB_PlayerType + (*DB_PlayerTypeArray)(nil), // 115: server.DB_PlayerTypeArray + (*DB_PotOdd)(nil), // 116: server.DB_PotOdd + (*DB_PotOddArray)(nil), // 117: server.DB_PotOddArray + (*DB_PropExchange)(nil), // 118: server.DB_PropExchange + (*DB_PropExchangeArray)(nil), // 119: server.DB_PropExchangeArray + (*DB_RankCycle)(nil), // 120: server.DB_RankCycle + (*DB_RankCycleArray)(nil), // 121: server.DB_RankCycleArray + (*DB_RankLevel)(nil), // 122: server.DB_RankLevel + (*DB_RankLevelArray)(nil), // 123: server.DB_RankLevelArray + (*DB_RankReward)(nil), // 124: server.DB_RankReward + (*DB_RankRewardArray)(nil), // 125: server.DB_RankRewardArray + (*DB_Sensitive_Words)(nil), // 126: server.DB_Sensitive_Words + (*DB_Sensitive_WordsArray)(nil), // 127: server.DB_Sensitive_WordsArray + (*DB_Skin)(nil), // 128: server.DB_Skin + (*DB_SkinArray)(nil), // 129: server.DB_SkinArray + (*DB_SkinLevel)(nil), // 130: server.DB_SkinLevel + (*DB_SkinLevelArray)(nil), // 131: server.DB_SkinLevelArray + (*DB_SlotRateWeight)(nil), // 132: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 133: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 134: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 135: server.DB_SystemChanceArray + (*DB_Task)(nil), // 136: server.DB_Task + (*DB_TaskArray)(nil), // 137: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 138: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 139: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 140: server.DB_Tips + (*DB_TipsArray)(nil), // 141: server.DB_TipsArray + (*DB_VIP)(nil), // 142: server.DB_VIP + (*DB_VIPArray)(nil), // 143: server.DB_VIPArray + (*DB_VIPShow)(nil), // 144: server.DB_VIPShow + (*DB_VIPShowArray)(nil), // 145: server.DB_VIPShowArray + nil, // 146: server.DB_ACTPushCoin.GainEntry + nil, // 147: server.DB_CollectBox.ItemIDEntry + nil, // 148: server.DB_GameItem.GainEntry + nil, // 149: server.DB_GameItem.CompoundEntry + nil, // 150: server.DB_GiftBox.ItemIDEntry + nil, // 151: server.DB_GiftCard.RewardsEntry + nil, // 152: server.DB_GiftCard.DayRewardsEntry + nil, // 153: server.DB_PetSkill.ItemConsumEntry + nil, // 154: server.DB_PigBank_Diamond.GoldExcEntry + nil, // 155: server.DB_PigBank_Diamond.DiamondExcEntry + nil, // 156: server.DB_PropExchange.CostEntry + nil, // 157: server.DB_PropExchange.GainEntry + nil, // 158: server.DB_Skin.UnlockItemEntry + nil, // 159: server.DB_SkinLevel.UpItemEntry + nil, // 160: server.DB_Task.AwardEntry + nil, // 161: server.DB_VIP.Privilege7Entry + nil, // 162: server.DB_VIP.AwardEntry } var file_protocol_server_pbdata_proto_depIdxs = []int32{ - 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign - 2, // 1: server.DB_Activity1Array.Arr:type_name -> server.DB_Activity1 - 4, // 2: server.DB_AnimalColorArray.Arr:type_name -> server.DB_AnimalColor - 6, // 3: server.DB_ArtilleryRateArray.Arr:type_name -> server.DB_ArtilleryRate - 8, // 4: server.DB_ArtillerySkinArray.Arr:type_name -> server.DB_ArtillerySkin - 10, // 5: server.DB_BlackWhiteArray.Arr:type_name -> server.DB_BlackWhite - 12, // 6: server.DB_CardsJDArray.Arr:type_name -> server.DB_CardsJD - 14, // 7: server.DB_CardsYuLeArray.Arr:type_name -> server.DB_CardsYuLe - 16, // 8: server.DB_ChessBilledRulesArray.Arr:type_name -> server.DB_ChessBilledRules - 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules - 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank - 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 144, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry - 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox - 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain - 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch - 30, // 16: server.DB_CreateroomArray.Arr:type_name -> server.DB_Createroom - 32, // 17: server.DB_FishArray.Arr:type_name -> server.DB_Fish - 34, // 18: server.DB_FishOutArray.Arr:type_name -> server.DB_FishOut - 36, // 19: server.DB_FishPathArray.Arr:type_name -> server.DB_FishPath - 38, // 20: server.DB_FishRoomArray.Arr:type_name -> server.DB_FishRoom - 40, // 21: server.DB_FishSkillArray.Arr:type_name -> server.DB_FishSkill - 42, // 22: server.DB_FortuneGod_OddsArray.Arr:type_name -> server.DB_FortuneGod_Odds - 44, // 23: server.DB_FortuneGod_TurnRateArray.Arr:type_name -> server.DB_FortuneGod_TurnRate - 46, // 24: server.DB_FortuneGod_WeightArray.Arr:type_name -> server.DB_FortuneGod_Weight - 48, // 25: server.DB_FortuneGod_WeightConditionArray.Arr:type_name -> server.DB_FortuneGod_WeightCondition - 50, // 26: server.DB_GamMatchLVArray.Arr:type_name -> server.DB_GamMatchLV - 52, // 27: server.DB_GameBankruptcyArray.Arr:type_name -> server.DB_GameBankruptcy - 54, // 28: server.DB_GameCoinPoolArray.Arr:type_name -> server.DB_GameCoinPool - 56, // 29: server.DB_GameFreeArray.Arr:type_name -> server.DB_GameFree - 145, // 30: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry - 146, // 31: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry - 58, // 32: server.DB_GameItemArray.Arr:type_name -> server.DB_GameItem - 60, // 33: server.DB_GameMatchLevelArray.Arr:type_name -> server.DB_GameMatchLevel - 62, // 34: server.DB_GameRuleArray.Arr:type_name -> server.DB_GameRule - 64, // 35: server.DB_GameSubsidyArray.Arr:type_name -> server.DB_GameSubsidy - 66, // 36: server.DB_Game_DropArray.Arr:type_name -> server.DB_Game_Drop - 68, // 37: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction - 70, // 38: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet - 72, // 39: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 147, // 40: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry - 74, // 41: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 148, // 42: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 149, // 43: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry - 76, // 44: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard - 78, // 45: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate - 80, // 46: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds - 82, // 47: server.DB_Legend_TurnRateArray.Arr:type_name -> server.DB_Legend_TurnRate - 84, // 48: server.DB_Legend_WeightArray.Arr:type_name -> server.DB_Legend_Weight - 86, // 49: server.DB_Legend_WeightConditionArray.Arr:type_name -> server.DB_Legend_WeightCondition - 88, // 50: server.DB_MatchRankArray.Arr:type_name -> server.DB_MatchRank - 90, // 51: server.DB_NameArray.Arr:type_name -> server.DB_Name - 92, // 52: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy - 94, // 53: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl - 96, // 54: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer - 98, // 55: server.DB_NewYearActivityArray.Arr:type_name -> server.DB_NewYearActivity - 100, // 56: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow - 150, // 57: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry - 102, // 58: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill - 104, // 59: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 151, // 60: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry - 152, // 61: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry - 106, // 62: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 108, // 63: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 110, // 64: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 112, // 65: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 114, // 66: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 153, // 67: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 154, // 68: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 116, // 69: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 118, // 70: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 120, // 71: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 122, // 72: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 124, // 73: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 155, // 74: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry - 126, // 75: server.DB_SkinArray.Arr:type_name -> server.DB_Skin - 156, // 76: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry - 128, // 77: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel - 130, // 78: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 132, // 79: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 157, // 80: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 134, // 81: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 136, // 82: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 138, // 83: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 158, // 84: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 159, // 85: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 140, // 86: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 142, // 87: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow - 88, // [88:88] is the sub-list for method output_type - 88, // [88:88] is the sub-list for method input_type - 88, // [88:88] is the sub-list for extension type_name - 88, // [88:88] is the sub-list for extension extendee - 0, // [0:88] is the sub-list for field type_name + 146, // 0: server.DB_ACTPushCoin.Gain:type_name -> server.DB_ACTPushCoin.GainEntry + 0, // 1: server.DB_ACTPushCoinArray.Arr:type_name -> server.DB_ACTPushCoin + 2, // 2: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign + 4, // 3: server.DB_Activity1Array.Arr:type_name -> server.DB_Activity1 + 6, // 4: server.DB_AnimalColorArray.Arr:type_name -> server.DB_AnimalColor + 8, // 5: server.DB_ArtilleryRateArray.Arr:type_name -> server.DB_ArtilleryRate + 10, // 6: server.DB_ArtillerySkinArray.Arr:type_name -> server.DB_ArtillerySkin + 12, // 7: server.DB_BlackWhiteArray.Arr:type_name -> server.DB_BlackWhite + 14, // 8: server.DB_CardsJDArray.Arr:type_name -> server.DB_CardsJD + 16, // 9: server.DB_CardsYuLeArray.Arr:type_name -> server.DB_CardsYuLe + 18, // 10: server.DB_ChessBilledRulesArray.Arr:type_name -> server.DB_ChessBilledRules + 20, // 11: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules + 22, // 12: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank + 24, // 13: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer + 147, // 14: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 26, // 15: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox + 28, // 16: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain + 30, // 17: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch + 32, // 18: server.DB_CreateroomArray.Arr:type_name -> server.DB_Createroom + 34, // 19: server.DB_FishArray.Arr:type_name -> server.DB_Fish + 36, // 20: server.DB_FishOutArray.Arr:type_name -> server.DB_FishOut + 38, // 21: server.DB_FishPathArray.Arr:type_name -> server.DB_FishPath + 40, // 22: server.DB_FishRoomArray.Arr:type_name -> server.DB_FishRoom + 42, // 23: server.DB_FishSkillArray.Arr:type_name -> server.DB_FishSkill + 44, // 24: server.DB_FortuneGod_OddsArray.Arr:type_name -> server.DB_FortuneGod_Odds + 46, // 25: server.DB_FortuneGod_TurnRateArray.Arr:type_name -> server.DB_FortuneGod_TurnRate + 48, // 26: server.DB_FortuneGod_WeightArray.Arr:type_name -> server.DB_FortuneGod_Weight + 50, // 27: server.DB_FortuneGod_WeightConditionArray.Arr:type_name -> server.DB_FortuneGod_WeightCondition + 52, // 28: server.DB_GamMatchLVArray.Arr:type_name -> server.DB_GamMatchLV + 54, // 29: server.DB_GameBankruptcyArray.Arr:type_name -> server.DB_GameBankruptcy + 56, // 30: server.DB_GameCoinPoolArray.Arr:type_name -> server.DB_GameCoinPool + 58, // 31: server.DB_GameFreeArray.Arr:type_name -> server.DB_GameFree + 148, // 32: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry + 149, // 33: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry + 60, // 34: server.DB_GameItemArray.Arr:type_name -> server.DB_GameItem + 62, // 35: server.DB_GameMatchLevelArray.Arr:type_name -> server.DB_GameMatchLevel + 64, // 36: server.DB_GameRuleArray.Arr:type_name -> server.DB_GameRule + 66, // 37: server.DB_GameSubsidyArray.Arr:type_name -> server.DB_GameSubsidy + 68, // 38: server.DB_Game_DropArray.Arr:type_name -> server.DB_Game_Drop + 70, // 39: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction + 72, // 40: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet + 74, // 41: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role + 150, // 42: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 76, // 43: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox + 151, // 44: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 152, // 45: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 78, // 46: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard + 80, // 47: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate + 82, // 48: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds + 84, // 49: server.DB_Legend_TurnRateArray.Arr:type_name -> server.DB_Legend_TurnRate + 86, // 50: server.DB_Legend_WeightArray.Arr:type_name -> server.DB_Legend_Weight + 88, // 51: server.DB_Legend_WeightConditionArray.Arr:type_name -> server.DB_Legend_WeightCondition + 90, // 52: server.DB_MatchRankArray.Arr:type_name -> server.DB_MatchRank + 92, // 53: server.DB_NameArray.Arr:type_name -> server.DB_Name + 94, // 54: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy + 96, // 55: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl + 98, // 56: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer + 100, // 57: server.DB_NewYearActivityArray.Arr:type_name -> server.DB_NewYearActivity + 102, // 58: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow + 153, // 59: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 104, // 60: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 106, // 61: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 154, // 62: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry + 155, // 63: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry + 108, // 64: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 110, // 65: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 112, // 66: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 114, // 67: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 116, // 68: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 156, // 69: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 157, // 70: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 118, // 71: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 120, // 72: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 122, // 73: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 124, // 74: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 126, // 75: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 158, // 76: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry + 128, // 77: server.DB_SkinArray.Arr:type_name -> server.DB_Skin + 159, // 78: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry + 130, // 79: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel + 132, // 80: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 134, // 81: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 160, // 82: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 136, // 83: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 138, // 84: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 140, // 85: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 161, // 86: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 162, // 87: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 142, // 88: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 144, // 89: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow + 90, // [90:90] is the sub-list for method output_type + 90, // [90:90] is the sub-list for method input_type + 90, // [90:90] is the sub-list for extension type_name + 90, // [90:90] is the sub-list for extension extendee + 0, // [0:90] is the sub-list for field type_name } func init() { file_protocol_server_pbdata_proto_init() } @@ -12921,7 +13070,7 @@ func file_protocol_server_pbdata_proto_init() { } if !protoimpl.UnsafeEnabled { file_protocol_server_pbdata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ActSign); i { + switch v := v.(*DB_ACTPushCoin); i { case 0: return &v.state case 1: @@ -12933,7 +13082,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ActSignArray); i { + switch v := v.(*DB_ACTPushCoinArray); i { case 0: return &v.state case 1: @@ -12945,7 +13094,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Activity1); i { + switch v := v.(*DB_ActSign); i { case 0: return &v.state case 1: @@ -12957,7 +13106,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Activity1Array); i { + switch v := v.(*DB_ActSignArray); i { case 0: return &v.state case 1: @@ -12969,7 +13118,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_AnimalColor); i { + switch v := v.(*DB_Activity1); i { case 0: return &v.state case 1: @@ -12981,7 +13130,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_AnimalColorArray); i { + switch v := v.(*DB_Activity1Array); i { case 0: return &v.state case 1: @@ -12993,7 +13142,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ArtilleryRate); i { + switch v := v.(*DB_AnimalColor); i { case 0: return &v.state case 1: @@ -13005,7 +13154,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ArtilleryRateArray); i { + switch v := v.(*DB_AnimalColorArray); i { case 0: return &v.state case 1: @@ -13017,7 +13166,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ArtillerySkin); i { + switch v := v.(*DB_ArtilleryRate); i { case 0: return &v.state case 1: @@ -13029,7 +13178,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ArtillerySkinArray); i { + switch v := v.(*DB_ArtilleryRateArray); i { case 0: return &v.state case 1: @@ -13041,7 +13190,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_BlackWhite); i { + switch v := v.(*DB_ArtillerySkin); i { case 0: return &v.state case 1: @@ -13053,7 +13202,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_BlackWhiteArray); i { + switch v := v.(*DB_ArtillerySkinArray); i { case 0: return &v.state case 1: @@ -13065,7 +13214,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CardsJD); i { + switch v := v.(*DB_BlackWhite); i { case 0: return &v.state case 1: @@ -13077,7 +13226,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CardsJDArray); i { + switch v := v.(*DB_BlackWhiteArray); i { case 0: return &v.state case 1: @@ -13089,7 +13238,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CardsYuLe); i { + switch v := v.(*DB_CardsJD); i { case 0: return &v.state case 1: @@ -13101,7 +13250,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CardsYuLeArray); i { + switch v := v.(*DB_CardsJDArray); i { case 0: return &v.state case 1: @@ -13113,7 +13262,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessBilledRules); i { + switch v := v.(*DB_CardsYuLe); i { case 0: return &v.state case 1: @@ -13125,7 +13274,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessBilledRulesArray); i { + switch v := v.(*DB_CardsYuLeArray); i { case 0: return &v.state case 1: @@ -13137,7 +13286,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessMatchRules); i { + switch v := v.(*DB_ChessBilledRules); i { case 0: return &v.state case 1: @@ -13149,7 +13298,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessMatchRulesArray); i { + switch v := v.(*DB_ChessBilledRulesArray); i { case 0: return &v.state case 1: @@ -13161,7 +13310,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessRank); i { + switch v := v.(*DB_ChessMatchRules); i { case 0: return &v.state case 1: @@ -13173,7 +13322,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ChessRankArray); i { + switch v := v.(*DB_ChessMatchRulesArray); i { case 0: return &v.state case 1: @@ -13185,7 +13334,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ClientVer); i { + switch v := v.(*DB_ChessRank); i { case 0: return &v.state case 1: @@ -13197,7 +13346,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ClientVerArray); i { + switch v := v.(*DB_ChessRankArray); i { case 0: return &v.state case 1: @@ -13209,7 +13358,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CollectBox); i { + switch v := v.(*DB_ClientVer); i { case 0: return &v.state case 1: @@ -13221,7 +13370,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CollectBoxArray); i { + switch v := v.(*DB_ClientVerArray); i { case 0: return &v.state case 1: @@ -13233,7 +13382,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CollectBoxGain); i { + switch v := v.(*DB_CollectBox); i { case 0: return &v.state case 1: @@ -13245,7 +13394,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CollectBoxGainArray); i { + switch v := v.(*DB_CollectBoxArray); i { case 0: return &v.state case 1: @@ -13257,7 +13406,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CrashSearch); i { + switch v := v.(*DB_CollectBoxGain); i { case 0: return &v.state case 1: @@ -13269,7 +13418,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CrashSearchArray); i { + switch v := v.(*DB_CollectBoxGainArray); i { case 0: return &v.state case 1: @@ -13281,7 +13430,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Createroom); i { + switch v := v.(*DB_CrashSearch); i { case 0: return &v.state case 1: @@ -13293,7 +13442,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_CreateroomArray); i { + switch v := v.(*DB_CrashSearchArray); i { case 0: return &v.state case 1: @@ -13305,7 +13454,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Fish); i { + switch v := v.(*DB_Createroom); i { case 0: return &v.state case 1: @@ -13317,7 +13466,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishArray); i { + switch v := v.(*DB_CreateroomArray); i { case 0: return &v.state case 1: @@ -13329,7 +13478,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishOut); i { + switch v := v.(*DB_Fish); i { case 0: return &v.state case 1: @@ -13341,7 +13490,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishOutArray); i { + switch v := v.(*DB_FishArray); i { case 0: return &v.state case 1: @@ -13353,7 +13502,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishPath); i { + switch v := v.(*DB_FishOut); i { case 0: return &v.state case 1: @@ -13365,7 +13514,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishPathArray); i { + switch v := v.(*DB_FishOutArray); i { case 0: return &v.state case 1: @@ -13377,7 +13526,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishRoom); i { + switch v := v.(*DB_FishPath); i { case 0: return &v.state case 1: @@ -13389,7 +13538,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishRoomArray); i { + switch v := v.(*DB_FishPathArray); i { case 0: return &v.state case 1: @@ -13401,7 +13550,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishSkill); i { + switch v := v.(*DB_FishRoom); i { case 0: return &v.state case 1: @@ -13413,7 +13562,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FishSkillArray); i { + switch v := v.(*DB_FishRoomArray); i { case 0: return &v.state case 1: @@ -13425,7 +13574,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_Odds); i { + switch v := v.(*DB_FishSkill); i { case 0: return &v.state case 1: @@ -13437,7 +13586,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_OddsArray); i { + switch v := v.(*DB_FishSkillArray); i { case 0: return &v.state case 1: @@ -13449,7 +13598,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_TurnRate); i { + switch v := v.(*DB_FortuneGod_Odds); i { case 0: return &v.state case 1: @@ -13461,7 +13610,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_TurnRateArray); i { + switch v := v.(*DB_FortuneGod_OddsArray); i { case 0: return &v.state case 1: @@ -13473,7 +13622,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_Weight); i { + switch v := v.(*DB_FortuneGod_TurnRate); i { case 0: return &v.state case 1: @@ -13485,7 +13634,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_WeightArray); i { + switch v := v.(*DB_FortuneGod_TurnRateArray); i { case 0: return &v.state case 1: @@ -13497,7 +13646,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_WeightCondition); i { + switch v := v.(*DB_FortuneGod_Weight); i { case 0: return &v.state case 1: @@ -13509,7 +13658,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_FortuneGod_WeightConditionArray); i { + switch v := v.(*DB_FortuneGod_WeightArray); i { case 0: return &v.state case 1: @@ -13521,7 +13670,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GamMatchLV); i { + switch v := v.(*DB_FortuneGod_WeightCondition); i { case 0: return &v.state case 1: @@ -13533,7 +13682,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GamMatchLVArray); i { + switch v := v.(*DB_FortuneGod_WeightConditionArray); i { case 0: return &v.state case 1: @@ -13545,7 +13694,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameBankruptcy); i { + switch v := v.(*DB_GamMatchLV); i { case 0: return &v.state case 1: @@ -13557,7 +13706,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameBankruptcyArray); i { + switch v := v.(*DB_GamMatchLVArray); i { case 0: return &v.state case 1: @@ -13569,7 +13718,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameCoinPool); i { + switch v := v.(*DB_GameBankruptcy); i { case 0: return &v.state case 1: @@ -13581,7 +13730,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameCoinPoolArray); i { + switch v := v.(*DB_GameBankruptcyArray); i { case 0: return &v.state case 1: @@ -13593,7 +13742,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameFree); i { + switch v := v.(*DB_GameCoinPool); i { case 0: return &v.state case 1: @@ -13605,7 +13754,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameFreeArray); i { + switch v := v.(*DB_GameCoinPoolArray); i { case 0: return &v.state case 1: @@ -13617,7 +13766,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameItem); i { + switch v := v.(*DB_GameFree); i { case 0: return &v.state case 1: @@ -13629,7 +13778,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameItemArray); i { + switch v := v.(*DB_GameFreeArray); i { case 0: return &v.state case 1: @@ -13641,7 +13790,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameMatchLevel); i { + switch v := v.(*DB_GameItem); i { case 0: return &v.state case 1: @@ -13653,7 +13802,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameMatchLevelArray); i { + switch v := v.(*DB_GameItemArray); i { case 0: return &v.state case 1: @@ -13665,7 +13814,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameRule); i { + switch v := v.(*DB_GameMatchLevel); i { case 0: return &v.state case 1: @@ -13677,7 +13826,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameRuleArray); i { + switch v := v.(*DB_GameMatchLevelArray); i { case 0: return &v.state case 1: @@ -13689,7 +13838,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameSubsidy); i { + switch v := v.(*DB_GameRule); i { case 0: return &v.state case 1: @@ -13701,7 +13850,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GameSubsidyArray); i { + switch v := v.(*DB_GameRuleArray); i { case 0: return &v.state case 1: @@ -13713,7 +13862,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_Drop); i { + switch v := v.(*DB_GameSubsidy); i { case 0: return &v.state case 1: @@ -13725,7 +13874,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_DropArray); i { + switch v := v.(*DB_GameSubsidyArray); i { case 0: return &v.state case 1: @@ -13737,7 +13886,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_Introduction); i { + switch v := v.(*DB_Game_Drop); i { case 0: return &v.state case 1: @@ -13749,7 +13898,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_IntroductionArray); i { + switch v := v.(*DB_Game_DropArray); i { case 0: return &v.state case 1: @@ -13761,7 +13910,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_Pet); i { + switch v := v.(*DB_Game_Introduction); i { case 0: return &v.state case 1: @@ -13773,7 +13922,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_PetArray); i { + switch v := v.(*DB_Game_IntroductionArray); i { case 0: return &v.state case 1: @@ -13785,7 +13934,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_Role); i { + switch v := v.(*DB_Game_Pet); i { case 0: return &v.state case 1: @@ -13797,7 +13946,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Game_RoleArray); i { + switch v := v.(*DB_Game_PetArray); i { case 0: return &v.state case 1: @@ -13809,7 +13958,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GiftBox); i { + switch v := v.(*DB_Game_Role); i { case 0: return &v.state case 1: @@ -13821,7 +13970,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GiftBoxArray); i { + switch v := v.(*DB_Game_RoleArray); i { case 0: return &v.state case 1: @@ -13833,7 +13982,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GiftCard); i { + switch v := v.(*DB_GiftBox); i { case 0: return &v.state case 1: @@ -13845,7 +13994,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_GiftCardArray); i { + switch v := v.(*DB_GiftBoxArray); i { case 0: return &v.state case 1: @@ -13857,7 +14006,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_IceAgeElementRate); i { + switch v := v.(*DB_GiftCard); i { case 0: return &v.state case 1: @@ -13869,7 +14018,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_IceAgeElementRateArray); i { + switch v := v.(*DB_GiftCardArray); i { case 0: return &v.state case 1: @@ -13881,7 +14030,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_Odds); i { + switch v := v.(*DB_IceAgeElementRate); i { case 0: return &v.state case 1: @@ -13893,7 +14042,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_OddsArray); i { + switch v := v.(*DB_IceAgeElementRateArray); i { case 0: return &v.state case 1: @@ -13905,7 +14054,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_TurnRate); i { + switch v := v.(*DB_Legend_Odds); i { case 0: return &v.state case 1: @@ -13917,7 +14066,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_TurnRateArray); i { + switch v := v.(*DB_Legend_OddsArray); i { case 0: return &v.state case 1: @@ -13929,7 +14078,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_Weight); i { + switch v := v.(*DB_Legend_TurnRate); i { case 0: return &v.state case 1: @@ -13941,7 +14090,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_WeightArray); i { + switch v := v.(*DB_Legend_TurnRateArray); i { case 0: return &v.state case 1: @@ -13953,7 +14102,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_WeightCondition); i { + switch v := v.(*DB_Legend_Weight); i { case 0: return &v.state case 1: @@ -13965,7 +14114,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Legend_WeightConditionArray); i { + switch v := v.(*DB_Legend_WeightArray); i { case 0: return &v.state case 1: @@ -13977,7 +14126,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_MatchRank); i { + switch v := v.(*DB_Legend_WeightCondition); i { case 0: return &v.state case 1: @@ -13989,7 +14138,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_MatchRankArray); i { + switch v := v.(*DB_Legend_WeightConditionArray); i { case 0: return &v.state case 1: @@ -14001,7 +14150,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Name); i { + switch v := v.(*DB_MatchRank); i { case 0: return &v.state case 1: @@ -14013,7 +14162,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NameArray); i { + switch v := v.(*DB_MatchRankArray); i { case 0: return &v.state case 1: @@ -14025,7 +14174,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NameBoy); i { + switch v := v.(*DB_Name); i { case 0: return &v.state case 1: @@ -14037,7 +14186,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NameBoyArray); i { + switch v := v.(*DB_NameArray); i { case 0: return &v.state case 1: @@ -14049,7 +14198,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NameGirl); i { + switch v := v.(*DB_NameBoy); i { case 0: return &v.state case 1: @@ -14061,7 +14210,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NameGirlArray); i { + switch v := v.(*DB_NameBoyArray); i { case 0: return &v.state case 1: @@ -14073,7 +14222,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewPlayer); i { + switch v := v.(*DB_NameGirl); i { case 0: return &v.state case 1: @@ -14085,7 +14234,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewPlayerArray); i { + switch v := v.(*DB_NameGirlArray); i { case 0: return &v.state case 1: @@ -14097,7 +14246,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearActivity); i { + switch v := v.(*DB_NewPlayer); i { case 0: return &v.state case 1: @@ -14109,7 +14258,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearActivityArray); i { + switch v := v.(*DB_NewPlayerArray); i { case 0: return &v.state case 1: @@ -14121,7 +14270,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PassShow); i { + switch v := v.(*DB_NewYearActivity); i { case 0: return &v.state case 1: @@ -14133,7 +14282,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PassShowArray); i { + switch v := v.(*DB_NewYearActivityArray); i { case 0: return &v.state case 1: @@ -14145,7 +14294,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkill); i { + switch v := v.(*DB_PassShow); i { case 0: return &v.state case 1: @@ -14157,7 +14306,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkillArray); i { + switch v := v.(*DB_PassShowArray); i { case 0: return &v.state case 1: @@ -14169,7 +14318,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLottery); i { + switch v := v.(*DB_PetSkill); i { case 0: return &v.state case 1: @@ -14181,7 +14330,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLotteryArray); i { + switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state case 1: @@ -14193,7 +14342,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_Diamond); i { + switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state case 1: @@ -14205,7 +14354,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_DiamondArray); i { + switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state case 1: @@ -14217,7 +14366,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_Prop); i { + switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state case 1: @@ -14229,7 +14378,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_PropArray); i { + switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state case 1: @@ -14241,7 +14390,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExp); i { + switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state case 1: @@ -14253,7 +14402,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExpArray); i { + switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state case 1: @@ -14265,7 +14414,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerType); i { + switch v := v.(*DB_PlayerExp); i { case 0: return &v.state case 1: @@ -14277,7 +14426,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerTypeArray); i { + switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state case 1: @@ -14289,7 +14438,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOdd); i { + switch v := v.(*DB_PlayerType); i { case 0: return &v.state case 1: @@ -14301,7 +14450,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOddArray); i { + switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state case 1: @@ -14313,7 +14462,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchange); i { + switch v := v.(*DB_PotOdd); i { case 0: return &v.state case 1: @@ -14325,7 +14474,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchangeArray); i { + switch v := v.(*DB_PotOddArray); i { case 0: return &v.state case 1: @@ -14337,7 +14486,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycle); i { + switch v := v.(*DB_PropExchange); i { case 0: return &v.state case 1: @@ -14349,7 +14498,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycleArray); i { + switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state case 1: @@ -14361,7 +14510,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevel); i { + switch v := v.(*DB_RankCycle); i { case 0: return &v.state case 1: @@ -14373,7 +14522,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevelArray); i { + switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state case 1: @@ -14385,7 +14534,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankReward); i { + switch v := v.(*DB_RankLevel); i { case 0: return &v.state case 1: @@ -14397,7 +14546,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankRewardArray); i { + switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state case 1: @@ -14409,7 +14558,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_Words); i { + switch v := v.(*DB_RankReward); i { case 0: return &v.state case 1: @@ -14421,7 +14570,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_WordsArray); i { + switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state case 1: @@ -14433,7 +14582,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Skin); i { + switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state case 1: @@ -14445,7 +14594,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SkinArray); i { + switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state case 1: @@ -14457,7 +14606,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SkinLevel); i { + switch v := v.(*DB_Skin); i { case 0: return &v.state case 1: @@ -14469,7 +14618,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SkinLevelArray); i { + switch v := v.(*DB_SkinArray); i { case 0: return &v.state case 1: @@ -14481,7 +14630,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeight); i { + switch v := v.(*DB_SkinLevel); i { case 0: return &v.state case 1: @@ -14493,7 +14642,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeightArray); i { + switch v := v.(*DB_SkinLevelArray); i { case 0: return &v.state case 1: @@ -14505,7 +14654,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChance); i { + switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state case 1: @@ -14517,7 +14666,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChanceArray); i { + switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state case 1: @@ -14529,7 +14678,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Task); i { + switch v := v.(*DB_SystemChance); i { case 0: return &v.state case 1: @@ -14541,7 +14690,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TaskArray); i { + switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state case 1: @@ -14553,7 +14702,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMapping); i { + switch v := v.(*DB_Task); i { case 0: return &v.state case 1: @@ -14565,7 +14714,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + switch v := v.(*DB_TaskArray); i { case 0: return &v.state case 1: @@ -14577,7 +14726,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Tips); i { + switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state case 1: @@ -14589,7 +14738,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TipsArray); i { + switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state case 1: @@ -14601,7 +14750,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIP); i { + switch v := v.(*DB_Tips); i { case 0: return &v.state case 1: @@ -14613,7 +14762,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIPArray); i { + switch v := v.(*DB_TipsArray); i { case 0: return &v.state case 1: @@ -14625,7 +14774,7 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIPShow); i { + switch v := v.(*DB_VIP); i { case 0: return &v.state case 1: @@ -14637,6 +14786,30 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIPArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_server_pbdata_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIPShow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_server_pbdata_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPShowArray); i { case 0: return &v.state @@ -14655,7 +14828,7 @@ func file_protocol_server_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_server_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 160, + NumMessages: 163, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 319f765..fba7d4f 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -5,6 +5,22 @@ syntax = "proto3"; package server; option go_package = "mongo.games.com/game/protocol/server"; +message DB_ACTPushCoin { + + int32 Id = 1; + + int32 Rate = 2; + + map Gain = 3; + + int64 Value = 4; + +} + +message DB_ACTPushCoinArray { + repeated DB_ACTPushCoin Arr = 1; +} + message DB_ActSign { int32 Id = 1; @@ -1481,6 +1497,8 @@ message DB_PropExchange { map Gain = 4; + int32 Times = 5; + } message DB_PropExchangeArray { diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 7939320..8852a95 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -10575,6 +10575,78 @@ func (x *ConsumeConfig) GetEndTime() string { return "" } +// etcd /game/act_pushcoin +type PushCoinConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 + On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 活动开关 1.开启 2.关闭 + StartTime string `protobuf:"bytes,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 活动开始时间 + EndTime string `protobuf:"bytes,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 活动结束时间 +} + +func (x *PushCoinConfig) Reset() { + *x = PushCoinConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushCoinConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushCoinConfig) ProtoMessage() {} + +func (x *PushCoinConfig) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[114] + 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 PushCoinConfig.ProtoReflect.Descriptor instead. +func (*PushCoinConfig) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{114} +} + +func (x *PushCoinConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *PushCoinConfig) GetOn() int32 { + if x != nil { + return x.On + } + return 0 +} + +func (x *PushCoinConfig) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *PushCoinConfig) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + var File_protocol_webapi_common_proto protoreflect.FileDescriptor var file_protocol_webapi_common_proto_rawDesc = []byte{ @@ -12191,10 +12263,17 @@ var file_protocol_webapi_common_proto_rawDesc = []byte{ 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x74, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, + 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26, + 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12209,7 +12288,7 @@ func file_protocol_webapi_common_proto_rawDescGZIP() []byte { return file_protocol_webapi_common_proto_rawDescData } -var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 124) +var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 125) var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -12325,32 +12404,33 @@ var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*RedPacketInfo)(nil), // 111: webapi.RedPacketInfo (*RedInfo)(nil), // 112: webapi.RedInfo (*ConsumeConfig)(nil), // 113: webapi.ConsumeConfig - nil, // 114: webapi.Platform.BindTelRewardEntry - nil, // 115: webapi.PlayerData.RankScoreEntry - nil, // 116: webapi.ItemShop.AwardEntry - nil, // 117: webapi.VIPcfg.AwardEntry - nil, // 118: webapi.VIPcfg.Privilege1Entry - nil, // 119: webapi.VIPcfg.Privilege7Entry - nil, // 120: webapi.VIPcfg.Privilege9Entry - nil, // 121: webapi.ActInviteConfig.PayScoreEntry - nil, // 122: webapi.SkinLevel.UpItemEntry - nil, // 123: webapi.SkinItem.UnlockParamEntry - (*server.DB_GameFree)(nil), // 124: server.DB_GameFree - (*server.DB_GameItem)(nil), // 125: server.DB_GameItem + (*PushCoinConfig)(nil), // 114: webapi.PushCoinConfig + nil, // 115: webapi.Platform.BindTelRewardEntry + nil, // 116: webapi.PlayerData.RankScoreEntry + nil, // 117: webapi.ItemShop.AwardEntry + nil, // 118: webapi.VIPcfg.AwardEntry + nil, // 119: webapi.VIPcfg.Privilege1Entry + nil, // 120: webapi.VIPcfg.Privilege7Entry + nil, // 121: webapi.VIPcfg.Privilege9Entry + nil, // 122: webapi.ActInviteConfig.PayScoreEntry + nil, // 123: webapi.SkinLevel.UpItemEntry + nil, // 124: webapi.SkinItem.UnlockParamEntry + (*server.DB_GameFree)(nil), // 125: server.DB_GameFree + (*server.DB_GameItem)(nil), // 126: server.DB_GameItem } var file_protocol_webapi_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 114, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 115, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 124, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 125, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 124, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 115, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 125, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 116, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo @@ -12363,7 +12443,7 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight - 116, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 117, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -12384,14 +12464,14 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 117, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 118, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry - 119, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 120, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry + 118, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 119, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry + 120, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 121, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 121, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 122, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward @@ -12408,12 +12488,12 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData - 125, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem + 126, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo - 122, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry - 123, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry + 123, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry + 124, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData @@ -13822,6 +13902,18 @@ func file_protocol_webapi_common_proto_init() { return nil } } + file_protocol_webapi_common_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushCoinConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -13829,7 +13921,7 @@ func file_protocol_webapi_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_webapi_common_proto_rawDesc, NumEnums: 0, - NumMessages: 124, + NumMessages: 125, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 0ff98df..0c491a5 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -1166,4 +1166,12 @@ message ConsumeConfig{ int32 On = 2; // 活动开关 1.开启 2.关闭 string StartTime = 3; // 活动开始时间 string EndTime = 4; // 活动结束时间 +} + +// etcd /game/act_pushcoin +message PushCoinConfig{ + string Platform = 1; // 平台 + int32 On = 2; // 活动开关 1.开启 2.关闭 + string StartTime = 3; // 活动开始时间 + string EndTime = 4; // 活动结束时间 } \ No newline at end of file diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 4600b73..efa3fa8 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -4697,6 +4697,7 @@ type RedPacketInfo struct { StayTs int64 `protobuf:"varint,4,opt,name=StayTs,proto3" json:"StayTs,omitempty"` // 持续时长,单位秒;0代表不限制 RemainCount int64 `protobuf:"varint,5,opt,name=RemainCount,proto3" json:"RemainCount,omitempty"` // 剩余次数;-1代表不限制 IsJoin bool `protobuf:"varint,6,opt,name=IsJoin,proto3" json:"IsJoin,omitempty"` // 是否参与过 + RedType int32 `protobuf:"varint,7,opt,name=RedType,proto3" json:"RedType,omitempty"` // 红包类型 1.金币 2.钻石 } func (x *RedPacketInfo) Reset() { @@ -4773,6 +4774,13 @@ func (x *RedPacketInfo) GetIsJoin() bool { return false } +func (x *RedPacketInfo) GetRedType() int32 { + if x != nil { + return x.RedType + } + return 0 +} + // 抽红包 //PACKET_CSRedPacketDraw type CSRedPacketDraw struct { @@ -5393,7 +5401,7 @@ var file_protocol_welfare_welfare_proto_rawDesc = []byte{ 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xa1, 0x01, 0x0a, 0x0d, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, @@ -5403,151 +5411,153 @@ var file_protocol_welfare_welfare_proto_rawDesc = []byte{ 0x74, 0x61, 0x79, 0x54, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4a, 0x6f, 0x69, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x4a, 0x6f, 0x69, 0x6e, 0x22, - 0x21, 0x0a, 0x0f, 0x43, 0x53, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, - 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x49, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x44, 0x72, 0x61, 0x77, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0xf5, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x4e, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, - 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, - 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, - 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, - 0x08, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, - 0x64, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, - 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 0x12, - 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x65, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x10, 0x2a, 0x86, - 0x0d, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, - 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, - 0x4e, 0x44, 0x10, 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, - 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, - 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, - 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x4a, 0x6f, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x52, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x0f, 0x43, 0x53, 0x52, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0xa1, 0x01, 0x0a, + 0x0f, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, 0x61, 0x77, + 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x2a, 0xf5, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, + 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 0x6e, 0x64, + 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x53, + 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x79, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x65, 0x73, 0x73, 0x10, + 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, + 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, + 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, + 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x0d, 0x12, 0x13, + 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, + 0x6f, 0x73, 0x74, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, + 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x10, 0x2a, 0x86, 0x0d, 0x0a, 0x09, 0x53, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, - 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, - 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, - 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, - 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, - 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, - 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, - 0x9b, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, - 0x10, 0x9c, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, - 0x4f, 0x10, 0x9d, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, - 0x58, 0x10, 0x9e, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, - 0x58, 0x10, 0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, - 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, - 0x50, 0x41, 0x59, 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, - 0x59, 0x10, 0xa3, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, 0x94, 0x14, 0x12, + 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, + 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, + 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, + 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, + 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, + 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, + 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, + 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, + 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b, 0x14, 0x12, 0x1f, 0x0a, 0x1a, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, + 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9c, 0x14, 0x12, 0x1f, 0x0a, + 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, + 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9d, 0x14, 0x12, 0x1e, + 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9e, 0x14, 0x12, 0x1e, + 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9f, 0x14, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa0, 0x14, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, + 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, + 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa2, 0x14, + 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, + 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa3, 0x14, 0x12, 0x21, + 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa4, + 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, + 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, - 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, - 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, - 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, - 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x14, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, - 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, - 0x66, 0x10, 0xd5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd7, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, - 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0xe1, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, - 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x10, 0xe6, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x10, 0xe7, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, + 0xa7, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, + 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, + 0x66, 0x10, 0xd4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd5, 0x16, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xd7, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, + 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x10, 0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xde, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xdf, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, + 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, + 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, + 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe1, 0x16, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xe5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe6, 0x16, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe7, 0x16, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, + 0xe8, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x16, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xea, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x10, 0xeb, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xe8, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x10, 0xe9, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xea, 0x16, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xeb, 0x16, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xec, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, - 0x70, 0x10, 0xed, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x8c, 0x17, 0x12, 0x19, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xee, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x10, 0xef, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x10, 0xf0, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, - 0x10, 0xf1, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xf2, 0x16, - 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x65, 0x64, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xf3, 0x16, 0x12, 0x1b, 0x0a, + 0x65, 0x10, 0xec, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x6f, 0x70, 0x10, 0xed, 0x16, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x8c, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x10, 0xee, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xef, 0x16, 0x12, 0x1e, + 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4c, + 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf0, 0x16, 0x12, 0x1d, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4c, + 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf1, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x44, 0x72, 0x61, 0x77, 0x10, 0xf4, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xf2, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x44, 0x72, 0x61, 0x77, 0x10, 0xf5, 0x16, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xf3, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, 0x61, + 0x77, 0x10, 0xf4, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, 0x61, 0x77, 0x10, 0xf5, + 0x16, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 8b1220f..ef3aeb8 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -579,6 +579,7 @@ message RedPacketInfo{ int64 StayTs = 4; // 持续时长,单位秒;0代表不限制 int64 RemainCount = 5; // 剩余次数;-1代表不限制 bool IsJoin = 6; // 是否参与过 + int32 RedType = 7; // 红包类型 1.金币 2.钻石 } // 抽红包 diff --git a/ranksrv/action_gatesrv.go b/ranksrv/action_gatesrv.go index 5744dc8..9dd4355 100644 --- a/ranksrv/action_gatesrv.go +++ b/ranksrv/action_gatesrv.go @@ -34,6 +34,8 @@ func init() { com.Register(int(rankproto.Rank_PACKET_CSLotteryHistory), rankproto.CSLotteryHistory{}, CSLotteryHistory) //年兽排行榜 com.Register(int(rankproto.Rank_PACKET_RANK_CSNian), rankproto.CSNian{}, CSNian) + // 红包历史记录 + com.Register(int(rankproto.Rank_PACKET_CSRedPacketHistory), rankproto.CSRedPacketHistory{}, CSRedPacketHistory) } func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { @@ -648,6 +650,7 @@ func CSLotteryHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int }) return nil } + func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { logger.Logger.Trace("CSNian data:", data) msg, ok := data.(*rankproto.CSNian) @@ -783,3 +786,36 @@ func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data int } return nil } + +func CSRedPacketHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { + logger.Logger.Trace("CSRedPacketHistory data:", data) + msg, ok := data.(*rankproto.CSRedPacketHistory) + if !ok { + return nil + } + + pack := &rankproto.SCRedPacketHistory{} + + var list []*model.RedPacketHistory + var err error + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + list, err = model.GetRedPacketHistory(d.Platform, d.Snid, msg.GetId()) + if err != nil { + logger.Logger.Errorf("GetRedPacketHistory error: %v", err) + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err == nil { + for _, v := range list { + pack.List = append(pack.List, &rankproto.RedPacketHistory{ + Ts: v.Ts, + ItemId: v.ItemId, + ItemNum: v.ItemNum, + }) + } + } + + common.SendToGate(sid, int(rankproto.Rank_PACKET_SCRedPacketHistory), pack, s) + }), "CSRedPacketHistory").Start() + return nil +} diff --git a/srvdata/db_actpushcoin.go b/srvdata/db_actpushcoin.go new file mode 100644 index 0000000..df9651f --- /dev/null +++ b/srvdata/db_actpushcoin.go @@ -0,0 +1,77 @@ + +// Code generated by xlsx2proto. +// DO NOT EDIT! + +package srvdata + +import ( + "google.golang.org/protobuf/proto" + + "mongo.games.com/game/protocol/server" +) + +var PBDB_ACTPushCoinMgr = &DB_ACTPushCoinMgr{ + Datas: &server.DB_ACTPushCoinArray{}, + pool: make(map[int32]*server.DB_ACTPushCoin), + +} + +type DB_ACTPushCoinMgr struct { + Datas *server.DB_ACTPushCoinArray + pool map[int32]*server.DB_ACTPushCoin + +} + +func (this *DB_ACTPushCoinMgr) unmarshal(data []byte) error { + err := proto.Unmarshal(data, this.Datas) + if err == nil { + this.arrangeData() + } + return err +} + +func (this *DB_ACTPushCoinMgr) reunmarshal(data []byte) error { + newDatas := &server.DB_ACTPushCoinArray{} + err := proto.Unmarshal(data, newDatas) + if err == nil { + for _, item := range newDatas.Arr { + existItem := this.GetData(item.GetId()) + if existItem == nil { + this.pool[item.GetId()] = item + this.Datas.Arr = append(this.Datas.Arr, item) + + } else { + *existItem = *item + } + } + } + return err +} + +func (this *DB_ACTPushCoinMgr) arrangeData() { + if this.Datas == nil { + return + } + + dataArr := this.Datas.GetArr() + if dataArr == nil { + return + } + + for _, data := range dataArr { + this.pool[data.GetId()] = data + + } +} + +func (this *DB_ACTPushCoinMgr) GetData(id int32) *server.DB_ACTPushCoin { + if data, ok := this.pool[id]; ok { + return data + } + return nil +} + + +func init() { + DataMgr.register("DB_ACTPushCoin.dat", &ProtobufDataLoader{dh: PBDB_ACTPushCoinMgr}) +} diff --git a/tools/benchmark/action_login.go b/tools/benchmark/action_login.go new file mode 100644 index 0000000..56cb89c --- /dev/null +++ b/tools/benchmark/action_login.go @@ -0,0 +1,95 @@ +package main + +import ( + "encoding/json" + "fmt" + "math/rand" + "mongo.games.com/goserver/core/timer" + "time" + + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" + + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + loginproto "mongo.games.com/game/protocol/login" + playerproto "mongo.games.com/game/protocol/player" +) + +func init() { + // 心跳 + netlib.Register(int(loginproto.GatePacketID_PACKET_SC_PONG), loginproto.SCPong{}, SCPong) + // 登录 + netlib.Register(int(loginproto.LoginPacketID_PACKET_SC_LOGIN), loginproto.SCLogin{}, SCLogin) + // 玩家信息 + netlib.Register(int(playerproto.PlayerPacketID_PACKET_SC_PLAYERDATA), playerproto.SCPlayerData{}, SCPlayerData) +} + +func SCPong(s *netlib.Session, packetid int, data interface{}) error { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Tracef("SCPong username:%v %v", accountID, data) + return nil +} + +func SCLogin(s *netlib.Session, packetid int, data interface{}) error { + logger.Logger.Trace("SCLogin ", data) + + msg, ok := data.(*loginproto.SCLogin) + if !ok { + return nil + } + + if msg.GetOpRetCode() != loginproto.OpResultCode_OPRC_Sucess { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Error("登录失败 ", accountID) + s.Close() + return nil + } + + csPlayerData := &playerproto.CSPlayerData{ + AccId: msg.GetAccId(), + } + pp := &model.PlayerParams{ + Platform: 1, + Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)), + City: "北京", + Logininmodel: "app", + } + d, err := json.Marshal(pp) + if err == nil { + csPlayerData.Params = proto.String(string(d)) + } + + s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PLAYERDATA), csPlayerData) + logger.Logger.Info("登录成功 ", msg.GetAccId()) + return nil +} + +func SCPlayerData(s *netlib.Session, packetid int, data interface{}) error { + logger.Logger.Trace("SCPlayerData ", data) + msg, ok := data.(*playerproto.SCPlayerData) + if !ok { + return nil + } + + if msg.GetOpRetCode() != playerproto.OpResultCode_OPRC_Sucess { + accountID := s.GetAttribute(SessionAttributeClientAccountId) + logger.Logger.Errorf("获取玩家信息失败 %v", accountID) + s.Close() + return nil + } + + s.SetAttribute(SessionAttributeUser, msg) + + StartSessionPingTimer(s, timer.TimerActionWrapper(func(h timer.TimerHandle, ud interface{}) bool { + if !s.IsConned() { + StopSessionPingTimer(s) + return false + } + pack := &loginproto.CSPing{} + s.Send(int(loginproto.GatePacketID_PACKET_CS_PING), pack) + return true + }), nil, time.Second*time.Duration(60+rand.Int31n(100)), -1) + + return nil +} diff --git a/tools/benchmark/config.go b/tools/benchmark/config.go new file mode 100644 index 0000000..a90ad75 --- /dev/null +++ b/tools/benchmark/config.go @@ -0,0 +1,35 @@ +package main + +import ( + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +var Config = &Configuration{} + +type Configuration struct { + Count int // 机器人总数 + AppId string // appID + Connects netlib.SessionConfig // 网络连接配置 +} + +func (this *Configuration) Name() string { + return "benchmark" +} + +func (this *Configuration) Init() error { + logger.Logger.Tracef("%+v", *this) + if this.Count == 0 { + this.Count = 20 + } + return nil +} + +func (this *Configuration) Close() error { + return nil +} + +func init() { + core.RegistePackage(Config) +} diff --git a/tools/benchmark/config.yaml b/tools/benchmark/config.yaml new file mode 100644 index 0000000..b8d3d9c --- /dev/null +++ b/tools/benchmark/config.yaml @@ -0,0 +1,65 @@ +netlib: + SrvInfo: + Name: BenchmarkServer + Type: 9 + Id: 902 + AreaID: 1 + Banner: + - ================= + - benchmark server + - ================= + IoServices: [] +module: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 100 +executor: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 0 + Worker: + WorkerCnt: 8 + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 0 +timer: + Options: + QueueBacklog: 1024 + MaxDone: 1024 + Interval: 100 +signal: + SupportSignal: true +benchmark: + Count: 100 + AppId: 5c56d1644966f078bfb90c71 + Connects: + Id: 402 + Type: 4 + AreaId: 1 + Name: ClientService + Ip: 127.0.0.1 + Port: 11001 + Protocol: tcp + Path: / + MaxDone: 200 + MaxPend: 200 + MaxPacket: 65535 + MaxConn: 2000 + RcvBuff: 4096 + SndBuff: 4096 + WriteTimeout: 3600 + ReadTimeout: 3600 + SoLinger: 10 + IsInnerLink: true + NoDelay: true + SupportFragment: true + AuthKey: www.jxjy.games.cn + IsClient: true + AllowMultiConn: true + FilterChain: + - session-filter-auth + HandlerChain: + - handler-gate-session diff --git a/tools/benchmark/connect.go b/tools/benchmark/connect.go new file mode 100644 index 0000000..a580173 --- /dev/null +++ b/tools/benchmark/connect.go @@ -0,0 +1,69 @@ +package main + +import ( + "time" + + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/module" + "mongo.games.com/goserver/core/netlib" +) + +const ( + // RobotSessionStartId 机器人session开始id + RobotSessionStartId = 100000000 +) + +var ( + BenchMarkModule = &BenchMark{} + WaitConnectSessions []*netlib.SessionConfig +) + +// NewSession 新建session +// id 连接id, 默认自动分配 +func NewSession(id ...int) { + cfg := Config.Connects + if len(id) > 0 && id[0] > 0 { + cfg.Id = id[0] + } else { + BenchMarkModule.idx++ + cfg.Id = BenchMarkModule.idx + } + cfg.Init() + logger.Logger.Info("waite connect session id=", cfg.Id) + WaitConnectSessions = append(WaitConnectSessions, &cfg) +} + +type BenchMark struct { + idx int +} + +func (m *BenchMark) ModuleName() string { + return "benchmark-module" +} + +func (m *BenchMark) Init() { + m.idx = RobotSessionStartId + for i := 0; i < Config.Count; i++ { + NewSession() + } +} + +// Update 机器开始连接游戏服务器 +func (m *BenchMark) Update() { + n := len(WaitConnectSessions) + if n > 0 { + config := WaitConnectSessions[n-1] + WaitConnectSessions = WaitConnectSessions[:n-1] + if err := netlib.Connect(config); err != nil { + logger.Logger.Error("netlib.Connect error", err) + } + } +} + +func (m *BenchMark) Shutdown() { + module.UnregisteModule(m) +} + +func init() { + module.RegisteModule(BenchMarkModule, time.Millisecond, 1) +} diff --git a/tools/benchmark/constants.go b/tools/benchmark/constants.go new file mode 100644 index 0000000..8a87971 --- /dev/null +++ b/tools/benchmark/constants.go @@ -0,0 +1,31 @@ +package main + +import ( + "mongo.games.com/goserver/core/netlib" + "mongo.games.com/goserver/core/timer" + "time" +) + +const ( + SessionAttributeClientAccountId int = iota // 账号 + SessionAttributeUser + SessionAttributePingTimer +) + +func StartSessionPingTimer(s *netlib.Session, act timer.TimerAction, ud interface{}, interval time.Duration, times int) bool { + StopSessionPingTimer(s) + if hTimer, ok := timer.StartTimer(act, ud, interval, times); ok { + s.SetAttribute(SessionAttributePingTimer, hTimer) + return true + } + return false +} + +func StopSessionPingTimer(s *netlib.Session) { + if h, ok := s.GetAttribute(SessionAttributePingTimer).(timer.TimerHandle); ok { + if h != timer.TimerHandle(0) { + timer.StopTimer(h) + s.RemoveAttribute(SessionAttributePingTimer) + } + } +} diff --git a/tools/benchmark/gatesessionhandler.go b/tools/benchmark/gatesessionhandler.go new file mode 100644 index 0000000..e6b06d7 --- /dev/null +++ b/tools/benchmark/gatesessionhandler.go @@ -0,0 +1,97 @@ +package main + +import ( + "crypto/md5" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "math/rand" + "mongo.games.com/game/common" + "mongo.games.com/game/model" + loginproto "mongo.games.com/game/protocol/login" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" + "strconv" + "sync/atomic" + "time" +) + +/* + 添加到客户端管理器,管理器负责登录 + 当连接断开时,从管理器中移除,判断是否需要重连 +*/ + +const ( + GateSessionHandlerName = "handler-gate-session" +) + +type GateSessionHandler struct { + netlib.BasicSessionHandler +} + +func (g *GateSessionHandler) GetName() string { + return GateSessionHandlerName +} + +func (g *GateSessionHandler) GetInterestOps() uint { + return 1< + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/benchmark/main.go b/tools/benchmark/main.go new file mode 100644 index 0000000..b1fe17b --- /dev/null +++ b/tools/benchmark/main.go @@ -0,0 +1,25 @@ +package main + +import ( + _ "mongo.games.com/game" + + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/module" +) + +func main() { + defer core.ClosePackages() + core.LoadPackages("config.yaml") + // core hook + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + + return nil + }) + core.RegisteHook(core.HOOK_AFTER_STOP, func() error { + + return nil + }) + // module模块 + waiter := module.Start() + waiter.Wait("main()") +} diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index e1125a9..cb1c7b6 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -140,6 +140,37 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er break } } + //签到额外奖励 + for _, value := range sData { + if value.Id == 2 { + strSlice := strings.Split(value.PropValue, ",") + itemId, _ := strconv.Atoi(strSlice[0]) + itemNum, _ := strconv.Atoi(strSlice[1]) + pack.OtherSignAward = append(pack.OtherSignAward, &activity.RankAwardData{ + ItemId: int32(itemId), + ItemNum: int64(itemNum), + }) + break + } + } + pack.OtherSignAwardCount = p.WelfData.NianData.SignOtherAwardCount + pack.OtherSignAwardProp = p.WelfData.NianData.SignOtherAwardProp + count := int64(0) + for _, value := range sData { + if value.Id == 3 { + count, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } + //签到奖励 + for _, info := range pool.List[0].SignReward { + pack.SignAward = append(pack.SignAward, &activity.RankAwardData{ + ItemId: info.ItemId, + ItemNum: info.ItemNum, + }) + } + + pack.OtherSignMaxCount = int32(count) StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() pack.BuffStartTime = StartTs @@ -154,6 +185,8 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.SignAwardTime = signTime pack.ChangeData = changeData pack.Switch = pool.Switch + pack.AttackMaxHp = p.WelfData.NianData.AttackMaxHp + pack.AttackSumHp = p.WelfData.NianData.AttackSumHp logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) } @@ -308,7 +341,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) for i := 0; i < count; i++ { //随机伤害值 randomValue := int64(rand.Intn(intSlice[1]-intSlice[0]+1) + intSlice[0]) - logger.Logger.Tracef("随机到的伤害值是:%d", randomValue) + logger.Logger.Tracef("snid :%v 随机到的伤害值是:%d", p.SnId, randomValue) //计算BUFF if p.WelfData.NianData.BuffCount > 0 { randomValue = randomValue + randomValue/2 @@ -386,7 +419,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) Change: extraItems, GainWay: common.GainWayNianGain_Attack_BigOther, Operator: "system", - Remark: "年兽活动-打爆竹额外活动奖励", + Remark: "年兽活动-大爆竹额外活动奖励", }) extraDrop := &activity.RankAwardData{} extraDrop.ItemId = int32(extraItemId) @@ -469,7 +502,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) var bossDieOther []*model.Item for _, info := range pool.List[0].BossDieOtherReward { if p.WelfData.NianData.OtherAwardNum[info.Id] >= info.DropUp { - logger.Logger.Trace("BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id]) + logger.Logger.Trace("snid:", p.SnId, "BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id]) continue } //随机 @@ -479,6 +512,9 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp { otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id]) } + if p.WelfData.NianData.OtherAwardNum == nil { + p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) + } p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum) bossDieOther = append(bossDieOther, &model.Item{ ItemId: otherItemId, @@ -529,6 +565,8 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) pack.DieAward = append(pack.DieAward, dieInfo) } pack.BuffCount = p.WelfData.NianData.BuffCount + pack.AttackMaxHp = p.WelfData.NianData.AttackMaxHp + pack.AttackSumHp = p.WelfData.NianData.AttackSumHp p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack) TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害 //更新年兽排行榜榜 @@ -539,7 +577,8 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) luckTime = 0 } damage := p.WelfData.NianData.AttackSumHp - if luckValue < RankNeed { + logger.Logger.Tracef("sndi :%v,当前最大幸运值:%v,“总榜伤害值:%v", p.SnId, p.WelfData.NianData.AttackMaxHp, p.WelfData.NianData.AttackSumHp) + if damage < RankNeed { damage = 0 } if luckValue > 0 || damage > 0 { @@ -556,6 +595,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) log.LuckTime = luckTime } mq.Write(log) + logger.Logger.Tracef("更新排行榜数据 snid :%v,log:%v", p.SnId, log) } } return nil @@ -670,6 +710,53 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 award.ItemNum = info.ItemNum pack.SignAward = append(pack.SignAward, award) } + //签到额外奖励 + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + count := int64(0) + for _, value := range sData { + if value.Id == 3 { + count, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } + var prop int64 + if p.WelfData.NianData.SignOtherAwardProp == 0 { + for _, value := range sData { + if value.Id == 4 { + prop, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } + p.WelfData.NianData.SignOtherAwardProp = int32(prop) + } + if p.WelfData.NianData.SignOtherAwardCount < int32(count) { + //概率 + if rand.Intn(100)+1 < int(p.WelfData.NianData.SignOtherAwardProp) { + for _, value := range sData { + if value.Id == 2 { + strSlice := strings.Split(value.PropValue, ",") + itemId, _ := strconv.Atoi(strSlice[0]) + itemNum, _ := strconv.Atoi(strSlice[1]) + items = append(items, &model.Item{ + ItemId: int32(itemId), + ItemNum: int64(itemNum), + }) + award := &activity.RankAwardData{} + award.ItemId = int32(itemId) + award.ItemNum = int64(itemNum) + pack.OtherSignAward = append(pack.OtherSignAward, award) + break + } + } + p.WelfData.NianData.SignOtherAwardCount += 1 + p.WelfData.NianData.SignOtherAwardProp = 60 + } else { + p.WelfData.NianData.SignOtherAwardProp += int32(prop) + if p.WelfData.NianData.SignOtherAwardProp > 100 { + p.WelfData.NianData.SignOtherAwardProp = 100 + } + } + } BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, @@ -679,6 +766,8 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 Operator: "system", Remark: "年兽活动-领取签到奖励获得", }) + pack.OtherSignAwardCount = p.WelfData.NianData.SignOtherAwardCount + pack.OtherSignAwardProp = p.WelfData.NianData.SignOtherAwardProp p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) TaskSubjectSingleton.Touch(common.TaskTypeNianSign, &TaskData{SnId: p.SnId, Num: 1}) } @@ -713,7 +802,10 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) return nil } num := msg.Num + pack := &activity.SCNianChange{} if num <= 0 || num > 99 { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) return nil } @@ -730,7 +822,6 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) break } } - pack := &activity.SCNianChange{} if p.Diamond < int64(diamond*int(num)) { pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) diff --git a/worldsrv/action_pushcoin.go b/worldsrv/action_pushcoin.go new file mode 100644 index 0000000..365b8ca --- /dev/null +++ b/worldsrv/action_pushcoin.go @@ -0,0 +1,438 @@ +package main + +import ( + "sort" + + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" + + "mongo.games.com/game/common" + "mongo.games.com/game/model" + "mongo.games.com/game/protocol/activity" + "mongo.games.com/game/srvdata" +) + +const ( + PowerMax = 700000 + PowerInit = 400000 +) + +var PushCoinItemValue = map[int32]int64{ + common.ItemIDBigCoin: 50000, + common.ItemIDVCard: 10000, + common.ItemIDPlum: 30000, + 30011: 100000000, // 话费卡 + common.ItemIDCoin1: 5000, + common.ItemIDCoin2: 10000, + common.ItemIDCoin3: 15000, + common.ItemIDDiamond: 100000, +} + +func init() { + // 推币机活动信息 + common.Register(int(activity.PushCoinPacketID_PACKET_CSPushCoinInfo), activity.CSPushCoinInfo{}, CSPushCoinInfo) + // 推币机玩家操作 + common.Register(int(activity.PushCoinPacketID_PACKET_CSPushCoinPlayerOp), activity.CSPushCoinPlayerOp{}, CSPushCoinPlayerOp) +} + +func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error { + _, ok := data.(*activity.CSPushCoinInfo) + if !ok { + return nil + } + + p := PlayerMgrSington.GetOnlinePlayer(sid) + if p == nil { + logger.Logger.Warn("CSPushCoinInfo p == nil") + return nil + } + + if p.WelfData == nil { + logger.Logger.Warn("CSPushCoinInfo p.WelfData == nil") + return nil + } + + if p.WelfData.PushCoin == nil { + InitPlayerPushCoin(p) + } + + pack := &activity.SCPushCoinInfo{ + ShakeTimes: p.WelfData.PushCoin.Shake, + PowerLine: p.WelfData.PushCoin.Power, + PowerLineMax: PowerMax, + RefreshTimes: p.WelfData.PushCoin.Refresh, + } + + for k, v := range p.WelfData.PushCoin.Items { + pack.Items = append(pack.Items, &activity.ItemInfo{ + ItemId: k, + ItemNum: v, + }) + } + + for _, v := range srvdata.PBDB_PropExchangeMgr.Datas.Arr { + if v.GetGroup() == 2 { + info := &activity.ExchangeInfo{ + Id: v.GetId(), + TotalTimes: int64(v.GetTimes()), + } + for kk, vv := range v.GetCost() { + info.Cost = append(info.Cost, &activity.ItemInfo{ + ItemId: int32(kk), + ItemNum: vv, + }) + } + sort.Slice(info.Cost, func(i, j int) bool { + return info.Cost[i].ItemId < info.Cost[j].ItemId + }) + for kk, vv := range v.GetGain() { + info.Gain = append(info.Gain, &activity.ItemInfo{ + ItemId: int32(kk), + ItemNum: vv, + }) + } + sort.Slice(info.Gain, func(i, j int) bool { + return info.Gain[i].ItemId < info.Gain[j].ItemId + }) + + info.Times = int64(v.GetTimes() - p.WelfData.PushCoin.Exchange[v.Id]) + if v.GetTimes() == 0 { + info.Times = -1 + info.TotalTimes = -1 + } + + pack.ExchangeList = append(pack.ExchangeList, info) + } + } + + // 转盘 + for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { + for kk, vv := range v.GetGain() { + pack.DrawList = append(pack.DrawList, &activity.DrawInfo{ + Id: v.GetId(), + ItemId: int32(kk), + ItemNum: int32(vv), + Coin: v.GetValue(), + }) + } + } + + p.SendToClient(int(activity.PushCoinPacketID_PACKET_SCPushCoinInfo), pack) + logger.Logger.Trace("SCPushCoinInfo: ", pack) + return nil +} + +func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSPushCoinPlayerOpHandler Process recv ", data) + msg, ok := data.(*activity.CSPushCoinPlayerOp) + if !ok { + return nil + } + + p := PlayerMgrSington.GetOnlinePlayer(sid) + if p == nil { + logger.Logger.Warn("CSPushCoinPlayerOp p == nil") + return nil + } + + if p.scene != nil { + logger.Logger.Warn("CSPushCoinPlayerOp p.scene != nil") + return nil + } + + if p.WelfData == nil { + logger.Logger.Warn("CSPushCoinPlayerOp p.WelfData == nil") + return nil + } + + if p.WelfData.PushCoin == nil { + logger.Logger.Warn("CSPushCoinPlayerOp p.WelfData.PushCoin == nil") + return nil + } + + pack := &activity.SCPushCoinPlayerOp{ + OpRetCode: activity.OpResultPushCoinCode_OPRC_PushCoin_Error, + OpCode: msg.GetOpCode(), + } + + switch msg.GetOpCode() { + case activity.OpCodes_OP_Bet: + if msg.GetOpParam() != common.ItemIDCoin1 && msg.GetOpParam() != common.ItemIDCoin2 && msg.GetOpParam() != common.ItemIDCoin3 { + goto here + } + + item := srvdata.GameItemMgr.Get(p.Platform, int32(msg.GetOpParam())) + if item == nil { + goto here + } + + if p.GetCoin() < item.GetNum() { + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_BetNotEnough + goto here + } + pack.BetId = int32(msg.GetOpParam()) + + p.AddCoin(-item.GetNum(), 0, common.GainWayPushCoinCost, "system", "推币机下注") + // 增加桌面道具 + PushCoinAddValue(p, map[int32]int64{ + int32(msg.GetOpParam()): 1, + }) + + case activity.OpCodes_OP_Gain: + + if msg.GetOpParam() == 1 { + // 有效区 + for _, v := range msg.GetOpItem() { + id := v.GetItemId() + val := v.GetItemNum() + + if p.WelfData.PushCoin.Items[id] < val { + logger.Logger.Errorf("获得道具太多: %d, %d", p.WelfData.PushCoin.Items[id], val) + // 刷新桌面余额 + //UpdatePlayerPushCoin(p) + goto here + } + + switch v.GetItemId() { + case common.ItemIDBigCoin, common.ItemIDCoin1, common.ItemIDCoin2, common.ItemIDCoin3: + val *= srvdata.GameItemMgr.Get(p.Platform, id).GetNum() + id = common.ItemIDCoin + } + + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: []*model.Item{{ItemId: id, ItemNum: val}}, + GainWay: common.GainWayPushCoinGain, + Operator: "system", + Remark: "推币机掉落获得", + }) + } + } else { + // 无效区 + + } + + for _, v := range msg.GetOpItem() { + // 增加能量条 + PushCoinAddPower(p, PushCoinItemValue[v.GetItemId()]*v.GetItemNum()) + // 减少桌面道具 + PushCoinAddValue(p, map[int32]int64{v.GetItemId(): -v.GetItemNum()}) + } + + case activity.OpCodes_OP_Shake: + if p.WelfData.PushCoin.Shake < int32(msg.GetOpParam()) { + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ShakeNotEnough + goto here + } + p.WelfData.PushCoin.Shake -= int32(msg.GetOpParam()) + + case activity.OpCodes_OP_Refresh: + //if p.WelfData.PushCoin.Refresh <= 0 { + // InitPlayerPushCoin(p) + //} else { + // UpdatePlayerPushCoin(p) + //} + + case activity.OpCodes_OP_Exchange: + d := srvdata.PBDB_PropExchangeMgr.GetData(int32(msg.GetOpParam())) + if d == nil { + goto here + } + // 兑换次数 + if d.GetTimes() > 0 && p.WelfData.PushCoin.Exchange[d.Id] >= d.GetTimes() { + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ExchangeNotEnough + goto here + } + + pack.Exchange = &activity.ExchangeInfo{ + Id: d.Id, + } + var cost, gain []*model.Item + for k, v := range d.GetCost() { + pack.Exchange.Cost = append(pack.Exchange.Cost, &activity.ItemInfo{ + ItemId: int32(k), + ItemNum: v, + }) + if k == common.ItemIDCoin && p.GetCoin() < v { + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ItemNotEnough + goto here + } + cost = append(cost, &model.Item{ + ItemId: int32(k), + ItemNum: -v, + }) + } + + _, _, ok := BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: cost, + Add: 0, + GainWay: common.GainWayPushCoinExchangeCost, + Operator: "system", + Remark: "推币机活动兑换消耗", + }) + if !ok { + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ItemNotEnough + goto here + } + + for k, v := range d.GetGain() { + pack.Exchange.Gain = append(pack.Exchange.Gain, &activity.ItemInfo{ + ItemId: int32(k), + ItemNum: v, + }) + if k == common.ItemIDShake { + p.WelfData.PushCoin.Shake += int32(v) + continue + } + gain = append(gain, &model.Item{ + ItemId: int32(k), + ItemNum: v, + }) + } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: gain, + Cost: cost, + Add: 0, + GainWay: common.GainWatPushCoinExchangeGain, + Operator: "system", + Remark: "推币机活动兑换获得", + }) + if p.WelfData.PushCoin.Exchange == nil { + p.WelfData.PushCoin.Exchange = make(map[int32]int32) + } + p.WelfData.PushCoin.Exchange[d.Id]++ + + default: + return nil + } + + pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_Success + +here: + p.SendToClient(int(activity.PushCoinPacketID_PACKET_SCPushCoinPlayerOp), pack) + logger.Logger.Trace("SCPushCoinPlayerOp: ", pack) + + return nil +} + +func InitPlayerPushCoin(p *Player) { + // 初始化 + p.WelfData.PushCoin = &model.PushCoinData{ + Power: PowerInit, + Exchange: make(map[int32]int32), + Items: map[int32]int64{ + common.ItemIDVCard: 1, + common.ItemIDCoin1: 50, + common.ItemIDPlum: 1, + }, + } +} + +// PushCoinAddPower 增加能量条 +func PushCoinAddPower(p *Player, value int64) { + if value < 0 { + return + } + p.WelfData.PushCoin.Power += value + if p.WelfData.PushCoin.Power > PowerMax { + p.WelfData.PushCoin.Power = PowerMax + } + p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyPowerLine), &activity.NotifyPowerLine{ + PowerLine: p.WelfData.PushCoin.Power, + PowerLineMax: PowerMax, + }) + if value <= 0 { + return + } + // 抽奖 + PushCoinDraw(p) +} + +// PushCoinDraw 抽奖 +func PushCoinDraw(p *Player) { + if p.WelfData.PushCoin.Power < PowerMax { + return + } + p.WelfData.PushCoin.Power = 0 + var index int32 = -1 + switch p.WelfData.PushCoin.Dram { + case 0: + // 必中大金币 + for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { + for kk := range v.GetGain() { + if kk == common.ItemIDBigCoin { + index = v.GetId() + break + } + } + } + + case 1: + // 必中v卡 + for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { + for kk := range v.GetGain() { + if kk == common.ItemIDVCard { + index = v.GetId() + break + } + } + } + + default: + var n int32 + rand := common.RandInt(10000) + for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { + if rand < int(n+v.GetRate()) { + index = v.GetId() + break + } + n += v.GetRate() + } + } + p.WelfData.PushCoin.Dram++ + + if index >= 0 { + d := srvdata.PBDB_ACTPushCoinMgr.GetData(index) + if d != nil { + pack := &activity.DrawInfo{ + Id: d.GetId(), + Coin: d.GetValue(), + } + for k, v := range d.GetGain() { + pack.ItemId = int32(k) + pack.ItemNum = int32(v) + PushCoinAddValue(p, map[int32]int64{pack.ItemId: int64(pack.ItemNum)}) + } + if pack.Coin > 0 || pack.ItemId > 0 { + p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyDrawInfo), pack) + // 增加能量条 + PushCoinAddPower(p, 0) + } + } + } +} + +// PushCoinAddValue 增加桌面道具 +func PushCoinAddValue(p *Player, item map[int32]int64) { + if item == nil { + return + } + if p.WelfData != nil && p.WelfData.PushCoin != nil { + if p.WelfData.PushCoin.Items == nil { + p.WelfData.PushCoin.Items = make(map[int32]int64) + } + for k, v := range item { + if v > 0 { + switch k { + default: + p.WelfData.PushCoin.Items[k] += v + } + } + } + } +} diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index eb2ad7e..d936ec5 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -6,7 +6,6 @@ import ( "time" "github.com/globalsign/mgo/bson" - "golang.org/x/exp/maps" "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/i18n" "mongo.games.com/goserver/core/logger" @@ -172,8 +171,9 @@ type BagInfo struct { Ts int64 //更新时间戳 // 临时携带参数 - dirty bool `bson:"-"` //是否需要更新数据库 - LogId string `bson:"-"` //最后一次保存的日志id + ItemLogsOffline []*model.ItemLog + dirty bool `bson:"-"` //是否需要更新数据库 + LogId string `bson:"-"` //最后一次保存的日志id } func NewBagInfo(platform string, snid int32) *BagInfo { @@ -205,7 +205,9 @@ var BagMgrSingleton = &BagMgr{ //============================================================================= type LoadData struct { - BagInfo *model.BagInfo + BagInfo *model.BagInfo + ItemLogsOnline []*model.ItemLog + ItemLogsOffline []*model.ItemLog } func (this *BagMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay { @@ -225,12 +227,61 @@ func (this *BagMgr) Load(platform string, snid int32, player any) *internal.Play bagInfo.Ts = time.Now().UnixNano() } + // 根据时间戳对账 + itemLogs, err := model.GetItemLog(platform, snid, bagInfo.Ts) + if err != nil { + logger.Logger.Errorf("Load GetItemLog err: %v", err) + return &internal.PlayerLoadReplay{ + Platform: platform, + Snid: snid, + Err: err, + Data: nil, + } + } + + // 恢复道具 + endTs := time.Now().UnixNano() + var itemLogsOnline, itemLogsOffline []*model.ItemLog + for _, v := range itemLogs { + if v == nil { + continue + } + if v.Ts >= bagInfo.Ts && v.Ts < endTs { + num := v.Count + if v.LogType == 1 { + num = -num + } + if v.Ts > bagInfo.Ts { + bagInfo.Ts = v.Ts + } + if v.Offline == 0 { + // 在线数据恢复 + logger.Logger.Tracef("道具恢复 SnId:%v Item:%+v", snid, *v) + if _, ok := bagInfo.BagItem[v.ItemId]; !ok { + bagInfo.BagItem[v.ItemId] = &model.Item{ + ItemId: v.ItemId, + ItemNum: 0, + ObtainTime: v.CreateTs, + } + } + bagInfo.BagItem[v.ItemId].ItemNum += num + itemLogsOnline = append(itemLogsOnline, v) + } else { + // 离线时的变更 + logger.Logger.Tracef("处理离线道具变化 SnId:%v Item:%v", snid, *v) + itemLogsOffline = append(itemLogsOffline, v) + } + } + } + return &internal.PlayerLoadReplay{ Platform: platform, Snid: snid, Err: err, Data: &LoadData{ - BagInfo: bagInfo, + BagInfo: bagInfo, + ItemLogsOnline: itemLogsOnline, + ItemLogsOffline: itemLogsOffline, }, } } @@ -262,43 +313,25 @@ func (this *BagMgr) Callback(player any, ret *internal.PlayerLoadReplay) { logger.Logger.Error("InitBagInfo err: item is nil. ItemId:", bi.ItemId) } } + + newBagInfo.ItemLogsOffline = data.ItemLogsOffline this.PlayerBag[ret.Snid] = newBagInfo } type LoadAfterData struct { - GameID []int32 - ItemLogs []*model.ItemLog - StarTs, EndTs int64 + GameID []int32 } func (this *BagMgr) LoadAfter(platform string, snid int32) *internal.PlayerLoadReplay { - var err error // 查询最近游戏 gameID := model.GetRecentGame(platform, snid) - // 道具变更记录 - endTs := time.Now().UnixNano() - var itemLogs []*model.ItemLog - itemLogs, err = model.GetItemLog(platform, snid, this.PlayerBag[snid].Ts) - if err != nil { - logger.Logger.Errorf("LoadAfter GetItemLog err: %v", err) - return &internal.PlayerLoadReplay{ - Platform: platform, - Snid: snid, - Err: err, - Data: nil, - } - } - return &internal.PlayerLoadReplay{ Platform: platform, Snid: snid, Err: nil, Data: &LoadAfterData{ - GameID: gameID, - ItemLogs: itemLogs, - StarTs: this.PlayerBag[snid].Ts, - EndTs: endTs, + GameID: gameID, }, } } @@ -330,50 +363,21 @@ func (this *BagMgr) CallbackAfter(ret *internal.PlayerLoadReplay) { // 道具变更记录 bagInfo := this.PlayerBag[p.SnId] if bagInfo != nil { - changeItems := make(map[int32]struct{}) - for _, v := range param.ItemLogs { - if v == nil { - continue - } - if v.Ts > param.StarTs && v.Ts <= param.EndTs { - bagInfo.dirty = true - num := v.Count - if v.LogType == 1 { - num = -num - } - if v.Ts > bagInfo.Ts { - bagInfo.Ts = v.Ts - } - if v.Offline == 0 { - // 在线数据恢复 - logger.Logger.Tracef("道具恢复 SnId:%v Item:%+v", p.SnId, *v) - if _, ok := bagInfo.BagItem[v.ItemId]; !ok { - bagInfo.BagItem[v.ItemId] = &Item{ - ItemId: v.ItemId, - ItemNum: 0, - ObtainTime: v.CreateTs, - } - } - bagInfo.BagItem[v.ItemId].ItemNum += num - changeItems[v.ItemId] = struct{}{} - } else { - // 离线时的变更 - logger.Logger.Tracef("处理离线道具变化 SnId:%v Item:%v", p.SnId, *v) - this.OnChangeFuncs(&model.ChangeItemParam{ - SnId: p.SnId, - ItemId: v.ItemId, - ItemNum: v.Count, - GainWay: v.TypeId, - RoomConfigId: v.RoomConfigId, - GameId: v.GameId, - GameFreeId: v.GameFreeId, - Cost: v.Cost, - }) - } - } + // 离线时的变更 + for _, v := range bagInfo.ItemLogsOffline { + logger.Logger.Tracef("处理离线道具变化 SnId:%v Item:%v", p.SnId, *v) + this.OnChangeFuncs(&model.ChangeItemParam{ + SnId: p.SnId, + ItemId: v.ItemId, + ItemNum: v.Count, + GainWay: v.TypeId, + RoomConfigId: v.RoomConfigId, + GameId: v.GameId, + GameFreeId: v.GameFreeId, + Cost: v.Cost, + }) } - - this.SyncBagData(p.SnId, maps.Keys(changeItems)...) + bagInfo.ItemLogsOffline = nil } } @@ -399,6 +403,9 @@ func (this *BagMgr) Save(platform string, snid int32, isSync, force bool) { newBagInfo.BagItem[v.ItemId] = &model.Item{ItemId: v.ItemId, ItemNum: v.ItemNum, ObtainTime: v.ObtainTime} } err = model.UpBagItem(newBagInfo) + if err != nil { + logger.Logger.Errorf("SaveBagData err: %v", err) + } } cf := func() { diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 4bd8f42..4f149cf 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -117,6 +117,8 @@ func init() { etcd.Register(etcd.KeyRedPacket, webapi.RedPacketConfig{}, platformConfigEvent) // 累计消耗活动配置 etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent) + // 推金币活动配置 + etcd.Register(etcd.KeyActPushCoin, webapi.PushCoinConfig{}, platformConfigEvent) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { @@ -370,6 +372,8 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e WelfareMgrSington.UpdateRedPacket(config, isInit) case *webapi.ConsumeConfig: WelfareMgrSington.UpdateConsumeConfig(config) + case *webapi.PushCoinConfig: + WelfareMgrSington.UpdatePushCoinConfig(config) default: logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) diff --git a/worldsrv/player.go b/worldsrv/player.go index b2c4b72..064d9ba 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -2903,6 +2903,9 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) { } //年兽礼包 if info.PageId == ShopPageNian { + if this.WelfData.NianData.GiftShop == nil { + this.WelfData.NianData.GiftShop = map[int32]int32{} + } this.WelfData.NianData.GiftShop[info.ShopId] += 1 } diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index 7357426..351d577 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -765,13 +765,14 @@ func (r *RankMatchMgr) RankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId) continue } var items []int64 for _, award := range rankAward { - if award.RankLevelId == rankId { + if award.RankLevelId == localRankId { for _, itemInfo := range award.Item { items = append(items, int64(itemInfo.ItemId)) items = append(items, itemInfo.ItemNum) @@ -786,7 +787,7 @@ func (r *RankMatchMgr) RankAward() { var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { title := i18n.Tr("languages", "PermitAwardTitle") - content := i18n.Tr("languages", "PermitAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -837,13 +838,14 @@ func (r *RankMatchMgr) RankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindWinCoinListTienlen player is nil %v", ret.List[k].SnId) continue } var items []int64 for _, award := range rankAward { - if award.RankLevelId == rankId { + if award.RankLevelId == localRankId { for _, itemInfo := range award.Item { items = append(items, int64(itemInfo.ItemId)) items = append(items, itemInfo.ItemNum) @@ -858,7 +860,7 @@ func (r *RankMatchMgr) RankAward() { var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { title := i18n.Tr("languages", "PermitAwardTitle") - content := i18n.Tr("languages", "PermitAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -956,15 +958,11 @@ func (r *RankMatchMgr) NianRankAward() { end, _ := time.Parse(time.DateTime, endTime) endTimestamp := end.Unix() nowTime := time.Now().Unix() - if nowTime < timestamp || nowTime > endTimestamp { + if nowTime < timestamp || nowTime-86400 > endTimestamp { return } - log := &model.NianPlayerRankLog{} - log.Ts = time.Now().Unix() - log.Platform = platform for _, info := range rankConfig.RankData { if info.TypeId == 1 { - log.TypeId = info.TypeId rankAward := info.RankInfo if rankAward == nil { continue @@ -993,15 +991,24 @@ func (r *RankMatchMgr) NianRankAward() { return } rankId := int32(1) + log := &model.NianPlayerRankLog{} + log.Ts = time.Now().Unix() + log.Platform = platform + log.TypeId = info.TypeId for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) continue } var items []int64 - for _, award := range rankAward[rankId].Award { - items = append(items, int64(award.ItemId)) - items = append(items, award.ItemNum) + for _, award := range rankAward { + if award.RankId == localRankId { + for _, itemInfo := range award.Award { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + } } if len(items) == 0 { break @@ -1010,7 +1017,7 @@ func (r *RankMatchMgr) NianRankAward() { var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { title := i18n.Tr("languages", "NianLuckTitle") - content := i18n.Tr("languages", "NianLuckAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + content := i18n.Tr("languages", "NianLuckAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -1027,12 +1034,13 @@ func (r *RankMatchMgr) NianRankAward() { })).Start() //记录log rankData := &model.NianPlayerRankData{ - RankId: rankId, + RankId: localRankId, Snid: player.SnId, - Score: list.List[rankId-1].Luck, + Score: list.List[localRankId-1].Luck, } log.RankData = append(log.RankData, rankData) rankId += 1 + logger.Logger.Infof("发奖 snid:%v rankId:%v", player.SnId, localRankId) } mq.Write(log) //清除幸运榜数值 @@ -1045,7 +1053,8 @@ func (r *RankMatchMgr) NianRankAward() { })).StartByExecutor("NianLuck_Award") } else if info.TypeId == 2 { - if time.Now().Day()-1 != end.Day() { + yesterday := time.Unix(time.Now().Unix()-86400, 0) + if yesterday.Day() != end.Day() { return } rankAward := info.RankInfo @@ -1053,7 +1062,6 @@ func (r *RankMatchMgr) NianRankAward() { continue } var players []*model.PlayerBaseInfo - log.TypeId = info.TypeId list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ Platform: platform, }) @@ -1076,16 +1084,25 @@ func (r *RankMatchMgr) NianRankAward() { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList err:%v", err) return } + log := &model.NianPlayerRankLog{} + log.Ts = time.Now().Unix() + log.Platform = platform + log.TypeId = info.TypeId rankId := int32(1) for k, player := range players { + localRankId := rankId // 将 rankId 复制到局部变量 if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) continue } var items []int64 - for _, award := range rankAward[rankId].Award { - items = append(items, int64(award.ItemId)) - items = append(items, award.ItemNum) + for _, award := range rankAward { + if award.RankId == localRankId { + for _, itemInfo := range award.Award { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + } } if len(items) == 0 { break @@ -1094,7 +1111,7 @@ func (r *RankMatchMgr) NianRankAward() { var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { title := i18n.Tr("languages", "NianDamageTitle") - content := i18n.Tr("languages", "NianDamageAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + content := i18n.Tr("languages", "NianDamageAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -1110,9 +1127,9 @@ func (r *RankMatchMgr) NianRankAward() { } })).Start() rankData := &model.NianPlayerRankData{ - RankId: rankId, + RankId: localRankId, Snid: player.SnId, - Score: list.List[rankId-1].Damage, + Score: list.List[localRankId-1].Damage, } log.RankData = append(log.RankData, rankData) rankId += 1 diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 1792b46..3581b88 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2273,7 +2273,7 @@ func init() { state = msg.GetState() player := PlayerMgrSington.GetPlayerBySnId(info.SnId) logger.Logger.Info("CallbackPayment player", player) - if player == nil || (player != nil && player.IsOffline()) { + if player == nil || player.IsOffline() { if msg.State == 1 { state = 3 } @@ -2291,7 +2291,7 @@ func init() { retFail("购买记录状态修改失败") return } - if player != nil || (player != nil && player.IsOffline()) { + if player != nil && !player.IsOffline() { player.DoShopInfo(info, false) // 邀请积分 InviteTask(msg.Platform, player.PSnId, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 7a331d9..f53c62f 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -5,8 +5,10 @@ import ( "math" "math/rand" "slices" + "sort" "time" + "go.mongodb.org/mongo-driver/bson/primitive" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/module" @@ -929,6 +931,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { // WelfareSwitch 通知活动开关状态 func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { pack := &player_proto.SCEasyWelfaredInfo{} + now := time.Now() // 0转盘1盲盒2首冲3连续充值 info := this.GetConfig(platform) @@ -1019,11 +1022,18 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { } // 累消活动 consumeConfig := info.ConsumeConfig - if consumeConfig != nil { + if consumeConfig != nil && now.Unix() >= common.StrTimeToTs(consumeConfig.StartTime) && now.Unix() < common.StrTimeToTs(consumeConfig.EndTime) { pack.WelfareSwitch = append(pack.WelfareSwitch, consumeConfig.On) //累消活动开关 } else { pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) } + // 推币机活动 + coinConfig := info.PushCoinConfig + if coinConfig != nil && now.Unix() >= common.StrTimeToTs(coinConfig.StartTime) && now.Unix() < common.StrTimeToTs(coinConfig.EndTime) { + pack.WelfareSwitch = append(pack.WelfareSwitch, coinConfig.On) //推币机活动开关 + } else { + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) + } if model.GameParamData.TestActSwitch { for k := range pack.WelfareSwitch { @@ -2302,6 +2312,13 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { EndTs: endTs, StayTs: v.GetStayTs(), } + if v.GetItemId() == common.ItemIDCoin { + info.RedType = 1 + } + if v.GetItemId() == common.ItemIDDiamond { + info.RedType = 2 + } + if p.WelfData != nil && p.WelfData.RedPacket != nil { if p.WelfData.RedPacket[v.GetId()] != nil { info.IsJoin = p.WelfData.RedPacket[v.GetId()].JN > 0 || p.WelfData.RedPacket[v.GetId()].N > 0 @@ -2313,6 +2330,10 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { } } + sort.Slice(pack.Info, func(i, j int) bool { + return pack.Info[i].StartTs < pack.Info[j].StartTs + }) + p.SendToClient(int(welfare.SPacketID_PACKET_SCRedPacketInfo), pack) return pack } @@ -2349,7 +2370,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr // 记录参与次数 if id == 0 { for _, v := range this.GetConfig(p.Platform).RedPacketConfig.GetList() { - if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() { + if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() && now < common.IntToTime(int(v.GetEndHMS())).Unix() { if p.WelfData.RedPacket[v.GetId()] == nil { p.WelfData.RedPacket[v.GetId()] = &model.RedPacketData{} } @@ -2398,10 +2419,10 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr if remain <= 0 || (playerLimit > 0 && playerRN >= playerLimit) { // 空奖 } else { - f := func() { + f := func(total int64) { // 概率抽奖 rate := 0 - n := rand.Int63n(100) + n := rand.Int63n(total) for _, v := range cfg.GetRedList() { rate += int(v.GetRate()) if n < int64(rate) { @@ -2413,23 +2434,22 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr if cfg.GetMaxCount() > 0 { // 保底计算 if data.RN >= cfg.GetLessCount() { - f() + f(10000) } else { sub := cfg.GetLessCount() - data.RN if cfg.GetMaxCount()-data.N <= sub { // 必中 - for i := 0; i < 1000; i++ { - f() - if reward > 0 { - break - } + var total int64 + for _, v := range cfg.GetRedList() { + total += v.GetRate() } + f(total) } else { - f() + f(10000) } } } else { - f() + f(10000) } } @@ -2461,6 +2481,18 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr Ts: now, }, mq.BackRedPacket) + mq.Write(&model.RedPacketHistory{ + Platform: p.Platform, + ID: primitive.NewObjectID(), + Cid: id, + Snid: p.SnId, + Ts: time.Now().Unix(), + ItemId: cfg.GetItemId(), + ItemNum: reward, + }, mq.DBRedPacket) + + TaskSubjectSingleton.Touch(common.TaskTypeBuyRedBag, &TaskData{SnId: p.SnId, Num: 1}) + _, pack.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, cfg) Send(welfare.OpResultCode_OPRC_Sucess) return pack @@ -2483,6 +2515,23 @@ func (this *WelfareMgr) UpdateConsumeConfig(conf *webapi_proto.ConsumeConfig) { } } +func (this *WelfareMgr) UpdatePushCoinConfig(conf *webapi_proto.PushCoinConfig) { + if model.GameParamData.TestActSwitch { + conf.On = model.WelfareOpen + } + s := int32(0) + info := this.GetConfig(conf.Platform) + if info.PushCoinConfig != nil { + s = info.PushCoinConfig.On + } + this.GetConfig(conf.Platform).PushCoinConfig = conf + //更新活动时间 + // 打开关闭要广播给客户端 + if s != 0 && s != conf.On { + this.WelfareSwitch(nil, conf.Platform, model.OpPushCoin) + } +} + func (this *WelfareMgr) Update() { } diff --git a/xlsx/DB_ACTPushCoin.xlsx b/xlsx/DB_ACTPushCoin.xlsx new file mode 100644 index 0000000..fc1ee8f Binary files /dev/null and b/xlsx/DB_ACTPushCoin.xlsx differ diff --git a/xlsx/DB_GameFree.xlsx b/xlsx/DB_GameFree.xlsx index 965eeb4..a2683b6 100644 Binary files a/xlsx/DB_GameFree.xlsx and b/xlsx/DB_GameFree.xlsx differ diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index adf11e3..41b58bf 100644 Binary files a/xlsx/DB_GameItem.xlsx and b/xlsx/DB_GameItem.xlsx differ diff --git a/xlsx/DB_GameRule.xlsx b/xlsx/DB_GameRule.xlsx index 1c38755..ad2e867 100644 Binary files a/xlsx/DB_GameRule.xlsx and b/xlsx/DB_GameRule.xlsx differ diff --git a/xlsx/DB_NewYearActivity.xlsx b/xlsx/DB_NewYearActivity.xlsx index 809217a..7325c5e 100644 Binary files a/xlsx/DB_NewYearActivity.xlsx and b/xlsx/DB_NewYearActivity.xlsx differ diff --git a/xlsx/DB_PropExchange.xlsx b/xlsx/DB_PropExchange.xlsx index 91badd0..ac7d0a4 100644 Binary files a/xlsx/DB_PropExchange.xlsx and b/xlsx/DB_PropExchange.xlsx differ diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 2fe8af9..30d00e9 100644 Binary files a/xlsx/DB_Task.xlsx and b/xlsx/DB_Task.xlsx differ