From 04a478e3a95c1c75ee942fdea13053c254e5bdac Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 6 Jun 2023 13:46:30 +0800 Subject: [PATCH 1/3] =?UTF-8?q?errdata=20=E5=AF=B9=E8=B1=A1=E8=BF=94?= =?UTF-8?q?=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/caravan/api_gotocity.go | 11 ++-- modules/hero/api_awaken.go | 22 +++----- modules/hero/api_buy.go | 22 +++++--- modules/hero/api_drawCard.go | 48 +++++++--------- modules/hero/api_fusion.go | 19 +++---- modules/hero/api_lock.go | 6 +- modules/hero/api_specified.go | 9 ++- modules/hero/api_strengthenUpSkill.go | 22 +++----- modules/hero/api_strengthenUpStar.go | 27 +++------ modules/hero/api_strengthenUplv.go | 27 ++++----- modules/hero/api_talentlearn.go | 31 +++++++---- modules/hero/api_talentreset.go | 14 +++-- modules/hero/model_hero.go | 5 +- modules/hero/module.go | 80 +++++++++++++++++++-------- 14 files changed, 184 insertions(+), 159 deletions(-) diff --git a/modules/caravan/api_gotocity.go b/modules/caravan/api_gotocity.go index 509907f28..c6dccd096 100644 --- a/modules/caravan/api_gotocity.go +++ b/modules/caravan/api_gotocity.go @@ -65,15 +65,18 @@ func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCity // list.Task = event.Worldtask // 对应世界任务组 // } } else { - code = pb.ErrorCode_DataNotFound - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: e.Error(), } } } if list.Curcity == req.City { - code = pb.ErrorCode_TrollCity + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TrollCity, + Title: pb.ErrorCode_TrollCity.ToString(), + } return } // 校验门票 diff --git a/modules/hero/api_awaken.go b/modules/hero/api_awaken.go index 2d3592813..f89e0f483 100644 --- a/modules/hero/api_awaken.go +++ b/modules/hero/api_awaken.go @@ -33,11 +33,10 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (e ) _heroMap = make(map[string]interface{}, 0) chanegCard = make([]*pb.DBHero, 0) - code = this.AwakenCheck(session, req) // check - if errdata != nil { + if errdata = this.AwakenCheck(session, req); errdata != nil { return } - _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) + _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) if errdata != nil { return } @@ -49,10 +48,6 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (e Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if len(awakenData.Phasebonus) < 2 { // 配置校验 @@ -66,12 +61,14 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (e //条件判断 if awakenData.Condition > _hero.Lv { - code = pb.ErrorCode_HeroLvNoEnough + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroLvNoEnough, + Title: pb.ErrorCode_HeroLvNoEnough.ToString(), + } return } // 消耗校验 - code = this.module.ConsumeRes(session, awakenData.Phaseneed, true) - if errdata != nil { + if errdata = this.module.ConsumeRes(session, awakenData.Phaseneed, true); errdata != nil { return } @@ -166,10 +163,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (e Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), szTask...) diff --git a/modules/hero/api_buy.go b/modules/hero/api_buy.go index c35d8894c..d5c6c9de9 100644 --- a/modules/hero/api_buy.go +++ b/modules/hero/api_buy.go @@ -39,7 +39,11 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.HeroBuyReq) (errdata return } if udata = this.module.ModuleUser.GetUser(session.GetUserId()); udata == nil { - code = pb.ErrorCode_SystemError + + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserNofound, // 没找到玩家数据 + Title: pb.ErrorCode_UserNofound.ToString(), + } return } @@ -49,16 +53,15 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.HeroBuyReq) (errdata Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } record, err := this.module.modelRecord.GetHeroRecord(session.GetUserId()) if err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, // 没找到英雄扩展数据数据 + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } global = this.module.ModuleTools.GetGlobalConf() @@ -80,8 +83,11 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.HeroBuyReq) (errdata } return } - if totalCount > conf.Buymaxnum { // 购买达到上限 - code = pb.ErrorCode_ShopGoodsIsSoldOut + if totalCount > conf.Buymaxnum { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ShopGoodsIsSoldOut, // 购买达到上限 + Title: pb.ErrorCode_ShopGoodsIsSoldOut.ToString(), + } return } diff --git a/modules/hero/api_drawCard.go b/modules/hero/api_drawCard.go index 351f646a0..9b54a0469 100644 --- a/modules/hero/api_drawCard.go +++ b/modules/hero/api_drawCard.go @@ -30,9 +30,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq cfgDraw *cfg.GameGlobalData costAtn *cfg.Gameatn heroRecord *pb.DBHeroRecord - pool string // 当前抽对应的卡池 - - strPool []string // 10连跨多个卡池情况 + pool string // 当前抽对应的卡池 + atno []*pb.UserAtno // 最终获得的资源 + strPool []string // 10连跨多个卡池情况 update map[string]interface{} normalDraw bool // 是否是普通抽 ) @@ -41,8 +41,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq if cfgDraw == nil { return } - code = this.DrawCardCheck(session, req) - if errdata != nil { + if errdata = this.DrawCardCheck(session, req); errdata != nil { return } szCards = make([]string, 0) @@ -59,8 +58,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq costAtn = cfgDraw.BasePool10cost } costRes = append(costRes, costAtn) - code = this.module.CheckRes(session, costRes) - if errdata != nil { // 消耗数量不足直接返回 + if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回 return } @@ -245,8 +243,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq costRes = append(costRes, costAtn) //阵营消耗 - code = this.module.CheckRes(session, costRes) - if errdata != nil { // 消耗数量不足直接返回 + if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回 return } for { @@ -276,10 +273,6 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } sz := make([]int32, 0) @@ -314,8 +307,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq } // 消耗道具 - code = this.module.ConsumeRes(session, costRes, true) - if errdata != nil { + if errdata = this.module.ConsumeRes(session, costRes, true); errdata != nil { return } heroRecord.Totalcount += req.DrawCount @@ -329,30 +321,30 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq rsp := &pb.HeroDrawCardResp{ Data: []*pb.AtnoData{}, } + var addRes []*cfg.Gameatn for _, heroId := range szCards { - - res := &cfg.Gameatn{ + addRes = append(addRes, &cfg.Gameatn{ A: "hero", T: heroId, N: 1, - } - if code, atno := this.module.DispenseAtno(session, []*cfg.Gameatn{res}, true); code == pb.ErrorCode_Success { + }) + } - rsp.Data = append(rsp.Data, &pb.AtnoData{ - Atno: atno, - }) - for _, v := range atno { - if v.A == "hero" && v.N == 1 { - if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄 - this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T) - } + if errdata, atno = this.module.DispenseAtno(session, addRes, true); errdata == nil { + + rsp.Data = append(rsp.Data, &pb.AtnoData{Atno: atno}) + for _, v := range atno { + if v.A == "hero" && v.N == 1 { + if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄 + this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T) } } } + } else { + return } session.SendMsg(string(this.module.GetType()), DrawCard, rsp) - // 任务统计 this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw) return diff --git a/modules/hero/api_fusion.go b/modules/hero/api_fusion.go index 75f8f9f5c..5c94a1a7b 100644 --- a/modules/hero/api_fusion.go +++ b/modules/hero/api_fusion.go @@ -34,13 +34,9 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (e conf, err := this.module.configure.GetHeroFucionConfig(req.HeroId) if err != nil { errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, + Code: pb.ErrorCode_ConfigNoFound, // 配置没找到 Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), - } // 配置没找到 - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), } return } @@ -57,8 +53,9 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (e for k, v := range req.Heros { // 校验英雄是否存在 _obj, c := this.module.GetHeroByObjID(session.GetUserId(), k) - if c != pb.ErrorCode_Success || _obj.SameCount < v { - code = pb.ErrorCode_HeroNoExist + if c != nil || _obj.SameCount < v { + errdata = c + return } mapHero[_obj.HeroID] += v _costMaphero[k] = _obj @@ -85,8 +82,7 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (e } for k, v := range req.Heros { //mapHero[_costMaphero[k].HeroID] - code = this.module.DelCard(session.GetUserId(), _costMaphero[k], v) - if errdata != nil { + if errdata = this.module.DelCard(session.GetUserId(), _costMaphero[k], v); errdata != nil { return } ChangeList = append(ChangeList, _costMaphero[k]) @@ -99,9 +95,8 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (e N: 1, } if errdata = this.module.DispenseRes(session, []*cfg.Gameatn{res}, false); errdata != nil { - - this.module.Errorf("err:%v,create hero:%s,uid,%ss", code, conf.Hero, session.GetUserId()) - code = pb.ErrorCode_HeroCreate // 创建新英雄失败 + this.module.Errorf("err:%v,create hero:%s,uid,%ss", errdata, conf.Hero, session.GetUserId()) + return } session.SendMsg(string(this.module.GetType()), HeroFusionResp, &pb.HeroFusionResp{Heroid: conf.Hero}) // 通过融合获得指定英雄 diff --git a/modules/hero/api_lock.go b/modules/hero/api_lock.go index 6c8189cf1..3d3ab94f7 100644 --- a/modules/hero/api_lock.go +++ b/modules/hero/api_lock.go @@ -24,12 +24,10 @@ func (this *apiComp) Lock(session comm.IUserSession, req *pb.HeroLockReq) (errda var ( _hero *pb.DBHero ) - code = this.LockCheck(session, req) // check - if errdata != nil { + if errdata = this.LockCheck(session, req); errdata != nil { return } - _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.Heroid) - if errdata != nil { + if _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.Heroid); errdata != nil { return } _hero.Block = !_hero.Block // 修改是否锁定状态 diff --git a/modules/hero/api_specified.go b/modules/hero/api_specified.go index e83a14b83..8c817f07c 100644 --- a/modules/hero/api_specified.go +++ b/modules/hero/api_specified.go @@ -22,13 +22,16 @@ func (this *apiComp) GetSpecifiedCheck(session comm.IUserSession, req *pb.HeroGe /// 获取指定星级或等级的英雄 GM 协议 func (this *apiComp) GetSpecified(session comm.IUserSession, req *pb.HeroGetSpecifiedReq) (errdata *pb.ErrorData) { - code = this.GetSpecifiedCheck(session, req) // check - if errdata != nil { + if errdata = this.GetSpecifiedCheck(session, req); errdata != nil { return } hero, err := this.module.modelHero.createSpecialHero(session.GetUserId(), req.HeroCoinfigID) if err == nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } + return } hero.Lv = req.Lv hero.Star = req.Star diff --git a/modules/hero/api_strengthenUpSkill.go b/modules/hero/api_strengthenUpSkill.go index 1d85072d6..834899c9e 100644 --- a/modules/hero/api_strengthenUpSkill.go +++ b/modules/hero/api_strengthenUpSkill.go @@ -28,12 +28,10 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt cost []*cfg.Gameatn // 技能升级消耗 lvUpCount int32 // 技能升级的次数 ) - code = this.StrengthenUpSkillCheck(session, req) // check - if errdata != nil { + if errdata = this.StrengthenUpSkillCheck(session, req); errdata != nil { return } - _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在 - if errdata != nil { + if _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID); errdata != nil { // 查询目标卡是否存在 return } // 查询配置表 找出原始品质 @@ -44,10 +42,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } for _, v := range heroCfg.Heroskillup { @@ -61,7 +56,6 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt } } // 消耗获取 - atn := this.module.configure.GetHeroSkillCost(heroCfg.Star) for _, v := range atn { res := &cfg.Gameatn{ @@ -89,10 +83,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } sz = append(sz, skillData.Probability[skill.SkillLv]) @@ -100,7 +91,10 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt } } if len(sz) == 0 { - code = pb.ErrorCode_HeroMaxSkillLv + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroMaxSkillLv, + Title: pb.ErrorCode_HeroMaxSkillLv.ToString(), + } this.module.Errorf("技能升级失败:uid:%s,oid:%s", session.GetUserId(), _hero.Id) return } diff --git a/modules/hero/api_strengthenUpStar.go b/modules/hero/api_strengthenUpStar.go index a659aed3e..1e333d971 100644 --- a/modules/hero/api_strengthenUpStar.go +++ b/modules/hero/api_strengthenUpStar.go @@ -26,45 +26,36 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr _hero *pb.DBHero // 目标英雄 err error ) - code = this.StrengthenUpStarCheck(session, req) // check - if errdata != nil { + if errdata = this.StrengthenUpStarCheck(session, req); errdata != nil { return } - _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) - if errdata != nil { + if _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID); errdata != nil { return } // 校验指定英雄 - starConf, err = this.module.configure.GetHeroStarupConfig(_hero.HeroID, _hero.Star) - if err != nil { + if starConf, err = this.module.configure.GetHeroStarupConfig(_hero.HeroID, _hero.Star); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } - heroConf, err := this.module.configure.GetHeroConfig(_hero.HeroID) - if err != nil { + if _, err = this.module.configure.GetHeroConfig(_hero.HeroID); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } nextHeroConfig, _ := this.module.configure.GetHeroStarupConfig(_hero.HeroID, _hero.Star+1) - if nextHeroConfig == nil && heroConf.Type != comm.CardTypeStar { - code = pb.ErrorCode_HeroMaxStarLv + if nextHeroConfig == nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroMaxStarLv, + Title: pb.ErrorCode_HeroMaxStarLv.ToString(), + } return } diff --git a/modules/hero/api_strengthenUplv.go b/modules/hero/api_strengthenUplv.go index aa922a247..ef0f6762c 100644 --- a/modules/hero/api_strengthenUplv.go +++ b/modules/hero/api_strengthenUplv.go @@ -1,6 +1,7 @@ package hero import ( + "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" @@ -28,13 +29,11 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren _hero *pb.DBHero // 目标英雄 cost []*cfg.Gameatn // 消耗的道具 ) - code = this.StrengthenUplvCheck(session, req) // check - if errdata != nil { + if errdata = this.StrengthenUplvCheck(session, req); errdata != nil { return } - _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) - if errdata != nil { + if _hero, errdata = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID); errdata != nil { return } for k, v := range req.Item { @@ -56,10 +55,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } } @@ -74,22 +69,28 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren } if addExp == 0 { - code = pb.ErrorCode_HeroExpTypeErr + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroExpTypeErr, + Title: pb.ErrorCode_HeroExpTypeErr.ToString(), + Message: fmt.Sprintf("addExp:%d", addExp), + } return } // 校验当前能不能升级 if _hero.Lv >= this.module.configure.GetHeroMaxLv(_hero.Star) { // 达到最大等级 - code = pb.ErrorCode_HeroMaxLv + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroMaxLv, + Title: pb.ErrorCode_HeroMaxLv.ToString(), + Message: fmt.Sprintf("addExp:%d", addExp), + } return } // 执行升级逻辑 - _, code = this.module.modelHero.AddCardExp(session, _hero, addExp, nil) // 加经验 - if errdata != nil { + if _, errdata = this.module.modelHero.AddCardExp(session, _hero, addExp, nil); errdata != nil { // 加经验 return } // 消耗金币 if errdata = this.module.ConsumeRes(session, cost, true); errdata != nil { //道具扣除 - code = pb.ErrorCode_ItemsNoEnough return } diff --git a/modules/hero/api_talentlearn.go b/modules/hero/api_talentlearn.go index 0c11f0c69..d28b27a7c 100644 --- a/modules/hero/api_talentlearn.go +++ b/modules/hero/api_talentlearn.go @@ -34,7 +34,11 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe } if req.ObjId != "" { if talent, err = this.module.modelTalent.GetHerotalentByObjId(session.GetUserId(), req.ObjId); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } this.module.Debugf("%v", talent) @@ -73,21 +77,18 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } user := this.module.ModuleUser.GetUser(session.GetUserId()) if user != nil { // 校验玩家等级 if talentConf.Condition < user.Lv { // 等级不满足 - code = pb.ErrorCode_UserLvNoEnough - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserLvNoEnough, + Title: pb.ErrorCode_UserLvNoEnough.ToString(), Message: fmt.Sprintf("等级不满足要求:curLv = %d,lv = %d", user.Lv, talentConf.Condition), } + return } } @@ -98,13 +99,21 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe talent.Talent = make(map[int32]int32) } if _, ok := talent.Talent[req.TalentID]; ok { - code = pb.ErrorCode_TalentRepeatLearn // 重复激活 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TalentRepeatLearn, // 重复激活 + Title: pb.ErrorCode_TalentRepeatLearn.ToString(), + Message: err.Error(), + } return } } else { for _, v := range talentConf.Before { if _, ok := talent.Talent[v]; !ok { - code = pb.ErrorCode_TalentUnLockerBefore // 前置技能不满足 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TalentUnLockerBefore, // 前置技能不满足 + Title: pb.ErrorCode_TalentUnLockerBefore.ToString(), + Message: err.Error(), + } return } } @@ -124,7 +133,7 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe N: leftCount, } if errdata = this.module.CheckRes(session, []*cfg.Gameatn{fp}); errdata != nil { - code = pb.ErrorCode_ItemsNoEnough + return } res = append(res, fp) diff --git a/modules/hero/api_talentreset.go b/modules/hero/api_talentreset.go index 5f468022c..2c2dbedb6 100644 --- a/modules/hero/api_talentreset.go +++ b/modules/hero/api_talentreset.go @@ -29,11 +29,17 @@ func (this *apiComp) TalentReset(session comm.IUserSession, req *pb.HeroTalentRe _talent, err1 := this.module.modelTalent.GetHerotalentByObjId(session.GetUserId(), req.ObjId) //根据对象id 获取数据 if err1 != nil { - code = pb.ErrorCode_TalentErrData + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TalentErrData, + Title: pb.ErrorCode_TalentErrData.ToString(), + } return } if len(_talent.Talent) == 0 { // 已经是重置状态 - code = pb.ErrorCode_TalentResetState + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TalentResetState, + Title: pb.ErrorCode_TalentResetState.ToString(), + } return } @@ -53,10 +59,6 @@ func (this *apiComp) TalentReset(session comm.IUserSession, req *pb.HeroTalentRe Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } } diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 424510c66..57626ef6e 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -510,7 +510,10 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex update map[string]interface{} // 属性变化 ) if hero == nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } update = make(map[string]interface{}, 0) diff --git a/modules/hero/module.go b/modules/hero/module.go index 433372361..3e251098f 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -106,32 +106,44 @@ func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, return } if err != nil { - code = pb.ErrorCode_HeroCreate + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroCreate, + Title: pb.ErrorCode_HeroCreate.ToString(), + Message: err.Error(), + } } return } // 获取英雄 -func (this *Hero) GetHeroByObjID(uid, heroId string) (*pb.DBHero, pb.ErrorCode) { - hero := this.modelHero.getOneHero(uid, heroId) - if hero == nil { - return nil, pb.ErrorCode_HeroNoExist +func (this *Hero) GetHeroByObjID(uid, heroId string) (hero *pb.DBHero, errdata *pb.ErrorData) { + hero = this.modelHero.getOneHero(uid, heroId) + if hero != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } } - return hero, pb.ErrorCode_Success + return } // 佩戴装备 func (this *Hero) UpdateEquipment(session comm.IUserSession, hero *pb.DBHero, equip []*pb.DB_Equipment) (errdata *pb.ErrorData) { - if hero == nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } list := make([]*pb.DBHero, 0) if newHero, err := this.modelHero.setEquipment(session.GetUserId(), hero); err != nil { - code = pb.ErrorCode_HeroEquipUpdate + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroEquipUpdate, + Title: pb.ErrorCode_HeroEquipUpdate.ToString(), + } return } else { if newHero != nil { @@ -214,7 +226,11 @@ func (this *Hero) CleanData(uid string) { // 创建一些特殊的英雄 func (this *Hero) GetSpecifiedHero(session comm.IUserSession, heroConfId string, star, lv int32) (errdata *pb.ErrorData) { if session.GetUserId() == "" || heroConfId == "" || star == 0 || lv == 0 { - return pb.ErrorCode_ReqParameterError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return } // 等级校验 conf, _ := this.configure.GetHeroConfig(heroConfId) @@ -248,7 +264,11 @@ func (this *Hero) GetSpecifiedHero(session comm.IUserSession, heroConfId string, } hero, err := this.modelHero.createSpecialHero(session.GetUserId(), heroConfId) if err != nil { - return pb.ErrorCode_HeroCreate + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroCreate, + Title: pb.ErrorCode_HeroCreate.ToString(), + Message: err.Error(), + } } hero.Lv = lv hero.Star = star @@ -285,7 +305,7 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string] if num == 0 { // 数量为0 不做处理 continue } - if hero, bFirst, atno, code = this.createRepeatHero(session, heroCfgId, num); errdata != nil { + if hero, bFirst, atno, errdata = this.createRepeatHero(session, heroCfgId, num); errdata != nil { this.Errorf("create hero %s failed", heroCfgId) continue } @@ -327,18 +347,18 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in this.Errorf("err:%v", err) return } - curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp, model) + curAddExp, errdata = this.modelHero.AddCardExp(session, _hero, exp, model) if errdata != nil { return } } } else { - _hero, code = this.GetHeroByObjID(session.GetUserId(), heroObjID) + _hero, errdata = this.GetHeroByObjID(session.GetUserId(), heroObjID) if errdata != nil { return } - curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp, nil) + curAddExp, errdata = this.modelHero.AddCardExp(session, _hero, exp, nil) if errdata != nil { return } @@ -367,14 +387,18 @@ func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongf } } } else { - _hero, code = this.GetHeroByObjID(session.GetUserId(), heroObjID) + _hero, errdata = this.GetHeroByObjID(session.GetUserId(), heroObjID) if errdata != nil { return } } if bKongfu && _hero.Status == pb.HeroType_HeroTypeKongFu { - code = pb.ErrorCode_HeroAlreadyKongFuStatus // 已经是练功状态 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroAlreadyKongFuStatus, // 已经是练功状态 + Title: pb.ErrorCode_HeroAlreadyKongFuStatus.ToString(), + Message: err.Error(), + } return } @@ -693,7 +717,11 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (errdata *pb.ErrorDat // 开始创建英雄 hero, err := this.modelHero.createSpecialHero(session.GetUserId(), v.Hid) if err != nil { - return pb.ErrorCode_HeroCreate + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroCreate, + Title: pb.ErrorCode_HeroCreate.ToString(), + Message: err.Error(), + } } // 获取满级技能 for _, skill := range hero.NormalSkill { @@ -879,9 +907,9 @@ func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid []string } } else { for _, v := range heroOid { - _hero, c := this.GetHeroByObjID(session.GetUserId(), v) - if c != pb.ErrorCode_Success { - code = c + _hero, err := this.GetHeroByObjID(session.GetUserId(), v) + if err != nil { + errdata = err return } _szHero = append(_szHero, _hero) @@ -895,14 +923,20 @@ func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid []string } else if v.Fulllvenr == 0 && fulllvenr != 0 { // 校验有没有满级 if v.Lv < this.configure.GetHeroMaxLv(v.Star) { - code = pb.ErrorCode_HeroLvNoEnough // 必须满级 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroLvNoEnough, + Title: pb.ErrorCode_HeroLvNoEnough.ToString(), + } return } v.Fulllvenr = fulllvenr _heroMap["fulllvenr"] = v.Fulllvenr } else { - code = pb.ErrorCode_HeroIsRegister + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroIsRegister, + Title: pb.ErrorCode_HeroIsRegister.ToString(), + } return } if this.IsCross() { From 0310fe06766ba8a706eda07fd1a30f1aaec7f904 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Tue, 6 Jun 2023 13:55:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/academy/api_challenge.go | 38 +++-- modules/academy/api_info.go | 5 +- modules/academy/api_receive.go | 20 +-- modules/academy/api_teaching.go | 47 +++--- modules/academy/api_teachingreceive.go | 21 +-- modules/arena/api_plot.go | 53 +++---- modules/arena/api_plotreward.go | 21 +-- modules/arena/api_rank.go | 12 -- modules/arena/api_setdattformt.go | 13 +- modules/arena/api_setdefformt.go | 15 +- modules/arena/modelarena.go | 12 +- modules/arena/module.go | 10 +- modules/battle/modelBattle.go | 175 +++++++++++++++-------- modules/battle/module.go | 68 ++++++--- modules/buried/api_send.go | 4 - modules/chat/api_chanagechannel.go | 8 -- modules/chat/api_crosschannel.go | 4 - modules/chat/api_getlist.go | 38 +---- modules/chat/api_send.go | 12 +- modules/chat/modelChat.go | 16 +-- modules/chat/module.go | 24 +++- modules/combat/api_ask.go | 16 +-- modules/combat/api_challenge.go | 14 +- modules/combat/api_challengereceive.go | 31 +--- modules/forum/api_watchhero.go | 7 +- modules/gateway/agent.go | 52 +++++-- modules/moonfantasy/api_ask.go | 38 +++-- modules/moonfantasy/api_battle.go | 116 ++++++++------- modules/moonfantasy/api_buy.go | 16 ++- modules/moonfantasy/api_getlist.go | 16 ++- modules/moonfantasy/api_receive.go | 2 +- modules/moonfantasy/modelDream.go | 8 +- modules/parkour/api_invite.go | 21 ++- modules/parkour/api_invitehandle.go | 10 +- modules/parkour/api_jointeam.go | 19 ++- modules/parkour/api_racematch.go | 5 +- modules/pay/api_dailybuy.go | 8 +- modules/pay/api_delivery.go | 2 +- modules/pay/module.go | 25 +++- modules/practice/api_accept.go | 30 +++- modules/practice/api_expulsion.go | 4 +- modules/practice/api_gymrefresh.go | 6 +- modules/practice/api_npcbattkle.go | 2 +- modules/practice/api_npcbattklefinish.go | 2 +- modules/practice/api_npcdialog.go | 22 +-- modules/practice/api_qiecuo.go | 36 ++++- modules/practice/api_receive.go | 2 +- modules/practice/api_refuse.go | 6 +- modules/practice/api_upgrade.go | 5 +- modules/practice/modelPandata.go | 12 +- modules/pvp/api_activecancel.go | 5 +- modules/pvp/api_incmd.go | 17 ++- modules/pvp/api_into.go | 29 ++-- modules/pvp/api_loadcomplete.go | 5 +- modules/pvp/module.go | 56 +++++--- modules/shop/api_buy.go | 12 +- modules/shop/api_getlist.go | 32 +++-- modules/web/api_createnotify.go | 20 +-- modules/web/api_creatmail.go | 27 ++-- modules/web/api_upload.go | 20 +-- 60 files changed, 749 insertions(+), 623 deletions(-) diff --git a/modules/academy/api_challenge.go b/modules/academy/api_challenge.go index 2a9a7760d..5a335b2b7 100644 --- a/modules/academy/api_challenge.go +++ b/modules/academy/api_challenge.go @@ -19,28 +19,9 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.AcademyChallen record *pb.DBBattleRecord err error ) - defer func() { - if errdata == nil { - session.SendMsg(string(this.module.GetType()), "challenge", &pb.AcademyChallengeResp{Code: pb.ErrorCode_Success, Level: req.Level, Info: &pb.BattleInfo{ - Id: record.Id, - Title: record.Title, - Rulesid: level.Battleready, - Btype: record.Btype, - Ptype: record.Ptype, - RedCompId: record.RedCompId, - Redflist: record.Redflist, - BlueCompId: record.BlueCompId, - Buleflist: record.Buleflist, - Tasks: level.Task, - }}) - } else { - session.SendMsg(string(this.module.GetType()), "challenge", &pb.AcademyChallengeResp{Code: errdata.Code, Info: nil}) - } - }() if errdata = this.ChallengeCheck(session, req); errdata != nil { return } - if level, err = this.module.configure.getGameTeaching(req.Level); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, @@ -48,12 +29,27 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.AcademyChallen } return } - cd, record = this.module.battle.CreateEveBattle(session, &pb.BattleEVEReq{ + if errdata, record = this.module.battle.CreateEveBattle(session, &pb.BattleEVEReq{ Ptype: pb.PlayType_academy, Format: nil, Sysformat: level.UsFormatList, Backupformat: nil, Buleformat: level.FormatList, - }) + }); errdata != nil { + return + } + + session.SendMsg(string(this.module.GetType()), "challenge", &pb.AcademyChallengeResp{Code: pb.ErrorCode_Success, Level: req.Level, Info: &pb.BattleInfo{ + Id: record.Id, + Title: record.Title, + Rulesid: level.Battleready, + Btype: record.Btype, + Ptype: record.Ptype, + RedCompId: record.RedCompId, + Redflist: record.Redflist, + BlueCompId: record.BlueCompId, + Buleflist: record.Buleflist, + Tasks: level.Task, + }}) return } diff --git a/modules/academy/api_info.go b/modules/academy/api_info.go index 72ed4723d..3024cf735 100644 --- a/modules/academy/api_info.go +++ b/modules/academy/api_info.go @@ -26,10 +26,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.AcademyInfoReq) (er Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } session.SendMsg(string(this.module.GetType()), "info", &pb.AcademyInfoResp{Info: info}) diff --git a/modules/academy/api_receive.go b/modules/academy/api_receive.go index d10c0fb82..f2cccaf9f 100644 --- a/modules/academy/api_receive.go +++ b/modules/academy/api_receive.go @@ -24,7 +24,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.AcademyReceiveRe if errdata = this.ReceiveCheck(session, req); errdata != nil { return } - if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } if iswin { @@ -34,10 +34,6 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.AcademyReceiveRe Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if level, err = this.module.configure.getGameTeaching(req.Level); err != nil { @@ -46,14 +42,14 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.AcademyReceiveRe Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } if req.Report.Completetask == nil || len(req.Report.Completetask) != len(level.Task) { - code = pb.ErrorCode_AcademyTaskNoCompleteTask + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_AcademyTaskNoCompleteTask, + Title: pb.ErrorCode_AcademyTaskNoCompleteTask.ToString(), + } return } @@ -66,10 +62,6 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.AcademyReceiveRe Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } diff --git a/modules/academy/api_teaching.go b/modules/academy/api_teaching.go index 7e162a347..1000b453b 100644 --- a/modules/academy/api_teaching.go +++ b/modules/academy/api_teaching.go @@ -18,44 +18,41 @@ func (this *apiComp) Teaching(session comm.IUserSession, req *pb.AcademyTeaching level *cfg.GameHeroStrategyData record *pb.DBBattleRecord err error - cd pb.ErrorCode ) - defer func() { - if cd == pb.ErrorCode_Success { - session.SendMsg(string(this.module.GetType()), "teaching", &pb.AcademyTeachingResp{Code: cd, HeroId: req.HeroId, Info: &pb.BattleInfo{ - Id: record.Id, - Title: record.Title, - Rulesid: level.Battleready, - Btype: record.Btype, - Ptype: record.Ptype, - RedCompId: record.RedCompId, - Redflist: record.Redflist, - BlueCompId: record.BlueCompId, - Buleflist: record.Buleflist, - Tasks: level.Task, - }}) - } else { - session.SendMsg(string(this.module.GetType()), "teaching", &pb.AcademyTeachingResp{Code: cd, Info: nil}) - } - }() - if cd = this.TeachingCheck(session, req); cd != pb.ErrorCode_Success { + if errdata = this.TeachingCheck(session, req); errdata != nil { return } if level, err = this.module.configure.getGameHeroTeaching(req.HeroId); err != nil { - cd = pb.ErrorCode_ConfigNoFound - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } - cd, record = this.module.battle.CreateEveBattle(session, &pb.BattleEVEReq{ + if errdata, record = this.module.battle.CreateEveBattle(session, &pb.BattleEVEReq{ Ptype: pb.PlayType_heroteaching, Format: nil, Sysformat: level.UsFormatList, Backupformat: nil, Buleformat: level.FormatList, - }) + }); errdata != nil { + return + } + + session.SendMsg(string(this.module.GetType()), "teaching", &pb.AcademyTeachingResp{ + HeroId: req.HeroId, Info: &pb.BattleInfo{ + Id: record.Id, + Title: record.Title, + Rulesid: level.Battleready, + Btype: record.Btype, + Ptype: record.Ptype, + RedCompId: record.RedCompId, + Redflist: record.Redflist, + BlueCompId: record.BlueCompId, + Buleflist: record.Buleflist, + Tasks: level.Task, + }}) return } diff --git a/modules/academy/api_teachingreceive.go b/modules/academy/api_teachingreceive.go index f587219f5..dbdebe468 100644 --- a/modules/academy/api_teachingreceive.go +++ b/modules/academy/api_teachingreceive.go @@ -24,7 +24,7 @@ func (this *apiComp) TeachingReceive(session comm.IUserSession, req *pb.AcademyT if errdata = this.TeachingReceiveCheck(session, req); errdata != nil { return } - if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } if iswin { @@ -34,10 +34,6 @@ func (this *apiComp) TeachingReceive(session comm.IUserSession, req *pb.AcademyT Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if level, err = this.module.configure.getGameHeroTeaching(req.HeroId); err != nil { @@ -46,16 +42,13 @@ func (this *apiComp) TeachingReceive(session comm.IUserSession, req *pb.AcademyT Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } if req.Report.Completetask == nil || len(req.Report.Completetask) != len(level.Task) { - code = pb.ErrorCode_AcademyTaskNoCompleteTask - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_AcademyTaskNoCompleteTask, + Title: pb.ErrorCode_AcademyTaskNoCompleteTask.ToString(), Message: fmt.Sprintf("目标任务:%v 完成任务:%v", level.Task, req.Report.Completetask), } return @@ -69,10 +62,6 @@ func (this *apiComp) TeachingReceive(session comm.IUserSession, req *pb.AcademyT Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } this.module.DispenseRes(session, level.Award, true) diff --git a/modules/arena/api_plot.go b/modules/arena/api_plot.go index 1aa20b05f..3e54cf776 100644 --- a/modules/arena/api_plot.go +++ b/modules/arena/api_plot.go @@ -23,64 +23,57 @@ func (this *apiComp) Plot(session comm.IUserSession, req *pb.ArenaPlotReq) (errd index int32 err error ) - if cd = this.PlotCheck(session, req); cd != pb.ErrorCode_Success { + if errdata = this.PlotCheck(session, req); errdata != nil { return } if npc, err = this.module.configure.getChallengenpc(req.Pid); err != nil { - cd = pb.ErrorCode_ConfigNoFound - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } if info, err = this.module.modelArena.queryPlayerInfo(session.GetUserId()); err != nil { - cd = pb.ErrorCode_DBError - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } this.module.modelArena.recoverTicket(session, info) - if cd = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.ModuleTools.GetGlobalConf().ArenaTicketCos}, true); cd != pb.ErrorCode_Success { + if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.ModuleTools.GetGlobalConf().ArenaTicketCos}, true); errdata != nil { return } - // if info.Ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos { - // info.Ticket -= this.module.ModuleTools.GetGlobalConf().ArenaTicketCos - // } else { - // code = pb.ErrorCode_ArenaTicketNotEnough - // return - // } + if info.Npc[req.Pid] != nil { ndata := info.Npc[req.Pid] if !configure.Now().After(time.Unix(ndata.Cd, 0)) { //已经过了cd时间 - code = pb.ErrorCode_ArenaTicketNpcInCd - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ArenaTicketNpcInCd, + Title: pb.ErrorCode_ArenaTicketNpcInCd.ToString(), } return } index = ndata.Index } - if cd, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ + if errdata, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ Ptype: pb.PlayType_arena, Format: req.Battle, Mformat: []int32{npc.MonsterformatId[index]}, - }); cd == pb.ErrorCode_Success { - if err = this.module.modelArena.updateArenaUserInfo(info); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - } - return - } + }); errdata != nil { + return } + if err = this.module.modelArena.updateArenaUserInfo(info); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } session.SendMsg(string(this.module.GetType()), "plot", &pb.ArenaPlotResp{ Pid: req.Pid, Info: &pb.BattleInfo{ diff --git a/modules/arena/api_plotreward.go b/modules/arena/api_plotreward.go index 54a9b36f0..90d70c462 100644 --- a/modules/arena/api_plotreward.go +++ b/modules/arena/api_plotreward.go @@ -37,20 +37,15 @@ func (this *apiComp) PlotReward(session comm.IUserSession, req *pb.ArenaPlotRewa Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } - if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } if !iswin { - code = pb.ErrorCode_MoonfantasyBattleNoWin - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: "战斗校验失败", + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyBattleNoWin, + Title: pb.ErrorCode_MoonfantasyBattleNoWin.ToString(), } return } @@ -60,10 +55,6 @@ func (this *apiComp) PlotReward(session comm.IUserSession, req *pb.ArenaPlotRewa Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if info.Npc[req.Pid] == nil { @@ -85,10 +76,6 @@ func (this *apiComp) PlotReward(session comm.IUserSession, req *pb.ArenaPlotRewa Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } diff --git a/modules/arena/api_rank.go b/modules/arena/api_rank.go index 778b932c9..b85724ffa 100644 --- a/modules/arena/api_rank.go +++ b/modules/arena/api_rank.go @@ -30,10 +30,6 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.ArenaRankReq) (errd Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if uids, err = this.module.modelRank.queryRankUser(); err != nil { @@ -42,10 +38,6 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.ArenaRankReq) (errd Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } if ranks, err = this.module.modelArena.queryPlayers(uids); err != nil { @@ -54,10 +46,6 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.ArenaRankReq) (errd Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } players = make([]*pb.ArenaPlayer, len(ranks)) diff --git a/modules/arena/api_setdattformt.go b/modules/arena/api_setdattformt.go index 3e47f7049..dd76db36b 100644 --- a/modules/arena/api_setdattformt.go +++ b/modules/arena/api_setdattformt.go @@ -27,10 +27,7 @@ func (this *apiComp) SetAttFormt(session comm.IUserSession, req *pb.ArenaSetAttF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } if heros, err = this.module.modelArena.queryUserHeros(session.GetUserId(), req.Formt); err != nil { @@ -39,10 +36,6 @@ func (this *apiComp) SetAttFormt(session comm.IUserSession, req *pb.ArenaSetAttF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } info.Attack = &pb.DBPlayerBattleFormt{ @@ -56,10 +49,6 @@ func (this *apiComp) SetAttFormt(session comm.IUserSession, req *pb.ArenaSetAttF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } return } session.SendMsg(string(this.module.GetType()), "setattformt", &pb.ArenaSetAttFormtResp{Issucc: true}) diff --git a/modules/arena/api_setdefformt.go b/modules/arena/api_setdefformt.go index 47aaa8ed3..c1743b1a9 100644 --- a/modules/arena/api_setdefformt.go +++ b/modules/arena/api_setdefformt.go @@ -27,10 +27,7 @@ func (this *apiComp) SetDefFormt(session comm.IUserSession, req *pb.ArenaSetDefF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } @@ -40,10 +37,7 @@ func (this *apiComp) SetDefFormt(session comm.IUserSession, req *pb.ArenaSetDefF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } info.Defend = &pb.DBPlayerBattleFormt{ @@ -57,10 +51,7 @@ func (this *apiComp) SetDefFormt(session comm.IUserSession, req *pb.ArenaSetDefF Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), - Message: err.Error(), - } + return } session.SendMsg(string(this.module.GetType()), "setdefformt", &pb.ArenaSetDefFormtResp{Issucc: true}) diff --git a/modules/arena/modelarena.go b/modules/arena/modelarena.go index 01f5876b1..e3f4baa0d 100644 --- a/modules/arena/modelarena.go +++ b/modules/arena/modelarena.go @@ -404,11 +404,7 @@ func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBAren ) if ticketitem = this.module.ModuleTools.GetGlobalConf().ArenaTicketCos; ticketitem == nil { - // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + // code = pb.ErrorCode_ConfigNoFound // data = &pb.ErrorData{ // Title: code.ToString(), // Message: comm.NewNotFoundConfErr(moduleName, "global.json", "ArenaTicketCos").Error(), @@ -453,11 +449,7 @@ func (this *modelArena) reddot(session comm.IUserSession) bool { return false } if ticketitem = this.module.ModuleTools.GetGlobalConf().ArenaTicketCos; ticketitem == nil { - // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + // code = pb.ErrorCode_ConfigNoFound // data = &pb.ErrorData{ // Title: code.ToString(), // Message: comm.NewNotFoundConfErr(moduleName, "global.json", "ArenaTicketCos").Error(), diff --git a/modules/arena/module.go b/modules/arena/module.go index ed54ee5f9..d5f55cdd2 100644 --- a/modules/arena/module.go +++ b/modules/arena/module.go @@ -130,7 +130,7 @@ func (this *Arena) GetMatcheBattleRoles(uid string) (captain int32, rules []*pb. info *pb.DBArenaUser players []*pb.ArenaPlayer ais []*pb.ArenaPlayer - code pb.ErrorCode + errdata *pb.ErrorData ) global = this.ModuleTools.GetGlobalConf() if info, err = this.modelArena.queryPlayerInfo(uid); err != nil && err != mgo.MongodbNil { @@ -151,8 +151,8 @@ func (this *Arena) GetMatcheBattleRoles(uid string) (captain int32, rules []*pb. } if len(players) > 0 { captain = players[0].Defend.Leadpos - if rules, code = this.battle.CreateRolesByHeros(players[0].Defend.Formt); errdata != nil { - err = fmt.Errorf("Player CreateRolesByHeros fail:%d", code) + if rules, errdata = this.battle.CreateRolesByHeros(players[0].Defend.Formt); errdata != nil { + err = fmt.Errorf("Player CreateRolesByHeros fail:%v", errdata) return } } else { @@ -161,8 +161,8 @@ func (this *Arena) GetMatcheBattleRoles(uid string) (captain int32, rules []*pb. } if len(ais) > 0 { captain = ais[0].Defend.Leadpos - if rules, code = this.battle.CreateRolesByHeros(ais[0].Defend.Formt); errdata != nil { - err = fmt.Errorf("AI CreateRolesByHeros fail:%d", code) + if rules, errdata = this.battle.CreateRolesByHeros(ais[0].Defend.Formt); errdata != nil { + err = fmt.Errorf("AI CreateRolesByHeros fail:%v", errdata) return } } else { diff --git a/modules/battle/modelBattle.go b/modules/battle/modelBattle.go index 0d0bf314b..5d5757681 100644 --- a/modules/battle/modelBattle.go +++ b/modules/battle/modelBattle.go @@ -78,11 +78,14 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon if v != "" { hero := &pb.DBHero{} if err := model.GetListObj(session.GetUserId(), v, hero); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(hero, tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(hero, tid, i); errdata != nil { return } if buff != nil { @@ -107,7 +110,10 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon if this.module.IsCross() { if hero, err = this.module.friend.UseAssistHero(session.GetUserId(), v); err != nil { this.module.Errorln(err) - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } } else { //获取跨服数据 @@ -123,7 +129,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon } } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(hero, tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(hero, tid, i); errdata != nil { return } record.Redflist[0].Team[i].Ishelp = true @@ -141,7 +147,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon if v == 0 { continue } - if captain, masters, code = this.createMasterRoles(100, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(100, i, v); errdata != nil { return } record.Redflist[i].Systeam = masters @@ -164,7 +170,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon if v == 0 { continue } - if captain, masters, code = this.createMasterRoles(100, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(100, i, v); errdata != nil { return } record.Redflist[i].Backupteam = masters @@ -182,7 +188,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon } else { record.Redflist = make([]*pb.DBBattleFormt, len(req.Sysformat)) for i, v := range req.Sysformat { - if captain, masters, code = this.createMasterRoles(100, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(100, i, v); errdata != nil { return } record.Redflist[i] = &pb.DBBattleFormt{ @@ -201,7 +207,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon } if req.Backupformat != nil && len(req.Backupformat) > 0 { for i, v := range req.Backupformat { - if captain, masters, code = this.createMasterRoles(100, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(100, i, v); errdata != nil { return } record.Redflist[i].Backupteam = masters @@ -219,7 +225,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon } for i, v := range req.Buleformat { - if captain, masters, code = this.createMasterRoles(200, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(200, i, v); errdata != nil { return } record.Buleflist[i] = &pb.DBBattleFormt{ @@ -258,11 +264,14 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon if v != "" { heros[i] = &pb.DBHero{} if err := model.GetListObj(session.GetUserId(), v, heros[i]); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } if buff != nil { @@ -286,7 +295,10 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon if this.module.IsCross() { if heros[i], err = this.module.friend.UseAssistHero(session.GetUserId(), v); err != nil { this.module.Errorln(err) - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } } else { //获取跨服数据 @@ -302,7 +314,7 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon } } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } record.Redflist[0].Team[i].Ishelp = true @@ -316,7 +328,10 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon } } if ok := this.checkBattlereadyCapskill(req.Format.Leadpos, heros); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } var ( @@ -324,7 +339,7 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon masters []*pb.BattleRole ) for i, v := range req.Mformat { - if captain, masters, code = this.createMasterRoles(200, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(200, i, v); errdata != nil { return } record.Buleflist[i] = &pb.DBBattleFormt{ @@ -364,11 +379,14 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon if v != "" { heros[i] = &pb.DBHero{} if err := model.GetListObj(session.GetUserId(), v, heros[i]); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 100 + i - if record.Redflist[ii].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[ii].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } if buff != nil { @@ -392,7 +410,10 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon if this.module.IsCross() { if heros[i], err = this.module.friend.UseAssistHero(session.GetUserId(), v); err != nil { this.module.Errorln(err) - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } } else { //获取跨服数据 @@ -408,7 +429,7 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon } } tid := 100 + i - if record.Redflist[ii].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[ii].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } record.Redflist[ii].Team[i].Ishelp = true @@ -422,7 +443,10 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon } } if ok := this.checkBattlereadyCapskill(v.Leadpos, heros); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } } @@ -432,7 +456,7 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon masters []*pb.BattleRole ) for i, v := range req.Mformat { - if captain, masters, code = this.createMasterRoles(200, i, v); errdata != nil { + if captain, masters, errdata = this.createMasterRoles(200, i, v); errdata != nil { return } record.Buleflist[i] = &pb.DBBattleFormt{ @@ -464,7 +488,7 @@ func (this *modelBattleComp) createpvp(session comm.IUserSession, conn *db.DBCon for i, v := range req.Redformat.Format { if v != nil { tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(v, tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(v, tid, i); errdata != nil { return } } else { @@ -472,7 +496,10 @@ func (this *modelBattleComp) createpvp(session comm.IUserSession, conn *db.DBCon } } if ok := this.checkBattlereadyCapskill(req.Redformat.Leadpos, req.Redformat.Format); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } @@ -484,7 +511,7 @@ func (this *modelBattleComp) createpvp(session comm.IUserSession, conn *db.DBCon for i, v := range req.Buleformat.Format { if v != nil { tid := 200 + i - if record.Buleflist[0].Team[i], code = this.createBattleRole(v, tid, i); errdata != nil { + if record.Buleflist[0].Team[i], errdata = this.createBattleRole(v, tid, i); errdata != nil { return } } else { @@ -492,7 +519,10 @@ func (this *modelBattleComp) createpvp(session comm.IUserSession, conn *db.DBCon } } if ok := this.checkBattlereadyCapskill(req.Buleformat.Leadpos, req.Buleformat.Format); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } return @@ -521,11 +551,14 @@ func (this *modelBattleComp) creatertpvp(redmodel, bluemodel *db.DBModel, btype if v != "" { heros[i] = &pb.DBHero{} if err := redmodel.GetListObj(req.RedCompId, v, heros[i]); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 100 + i - if record.Redflist[ii].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[ii].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } } else { @@ -533,7 +566,10 @@ func (this *modelBattleComp) creatertpvp(redmodel, bluemodel *db.DBModel, btype } } if ok := this.checkBattlereadyCapskill(v.Leadpos, heros); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } } @@ -547,11 +583,14 @@ func (this *modelBattleComp) creatertpvp(redmodel, bluemodel *db.DBModel, btype if v != "" { heros[i] = &pb.DBHero{} if err := bluemodel.GetListObj(req.BlueCompId, v, heros[i]); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 200 + i - if record.Buleflist[ii].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Buleflist[ii].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } } else { @@ -559,7 +598,10 @@ func (this *modelBattleComp) creatertpvp(redmodel, bluemodel *db.DBModel, btype } } if ok := this.checkBattlereadyCapskill(v.Leadpos, heros); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } } @@ -594,11 +636,14 @@ func (this *modelBattleComp) createlpve(session comm.IUserSession, conn *db.DBCo if v != "" { heros[i] = &pb.DBHero{} if err := model.GetListObj(session.GetUserId(), v, heros[i]); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } if buff != nil { @@ -622,7 +667,10 @@ func (this *modelBattleComp) createlpve(session comm.IUserSession, conn *db.DBCo if this.module.IsCross() { if heros[i], err = this.module.friend.UseAssistHero(session.GetUserId(), v); err != nil { this.module.Errorln(err) - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + } return } } else { //获取跨服数据 @@ -638,7 +686,7 @@ func (this *modelBattleComp) createlpve(session comm.IUserSession, conn *db.DBCo } } tid := 100 + i - if record.Redflist[0].Team[i], code = this.createBattleRole(heros[i], tid, i); errdata != nil { + if record.Redflist[0].Team[i], errdata = this.createBattleRole(heros[i], tid, i); errdata != nil { return } record.Redflist[0].Team[i].Ishelp = true @@ -652,7 +700,10 @@ func (this *modelBattleComp) createlpve(session comm.IUserSession, conn *db.DBCo } } if ok := this.checkBattlereadyCapskill(req.Format.Leadpos, heros); !ok { - code = pb.ErrorCode_BattleCapskillCheckFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCapskillCheckFailed, + Title: pb.ErrorCode_BattleCapskillCheckFailed.ToString(), + } return } record.Buleflist[0] = &pb.DBBattleFormt{ @@ -706,11 +757,11 @@ func (this *modelBattleComp) createBattleRole(hero *pb.DBHero, tid, pos int) (ro } if hero.SuiteId != 0 { //主套装 if suit, err := this.module.configure.Getequipsuit(hero.SuiteId); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } else { role.MainSuitSkill = suit.Skill @@ -718,11 +769,11 @@ func (this *modelBattleComp) createBattleRole(hero *pb.DBHero, tid, pos int) (ro } if hero.SuiteExtId != 0 { //副套装 if suit, err := this.module.configure.Getequipsuit(hero.SuiteExtId); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } else { role.SubSuitSkill = suit.Skill @@ -738,7 +789,7 @@ func (this *modelBattleComp) createMasterRoles(comp, wheel int, fid int32) (capt err error ) if result, err = this.module.configure.GetMonsterFormat(fid); err != nil { - errdata = &pb.ErrorData{ + errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), @@ -753,11 +804,11 @@ func (this *modelBattleComp) createMasterRoles(comp, wheel int, fid int32) (capt captain = int32(i) } // if monst, err := this.module.configure.GetMonster(v.Monster); err != nil { - // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } // } else { hero := &pb.DBHero{} if hero = this.module.ModuleHero.CreateMonster(fmt.Sprintf("%d", v.Heroid), v.Star, v.Lv); hero == nil { @@ -802,11 +853,11 @@ func (this *modelBattleComp) createMasterRoles(comp, wheel int, fid int32) (capt } if v.Equip4 != 0 { if suit, err := this.module.configure.Getequipsuit(v.Equip4); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } else { roles[i].MainSuitSkill = suit.Skill @@ -814,11 +865,11 @@ func (this *modelBattleComp) createMasterRoles(comp, wheel int, fid int32) (capt } if v.Equip2 != 0 { if suit, err := this.module.configure.Getequipsuit(v.Equip2); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } else { roles[i].SubSuitSkill = suit.Skill diff --git a/modules/battle/module.go b/modules/battle/module.go index f6cde7082..d94f3a3cc 100644 --- a/modules/battle/module.go +++ b/modules/battle/module.go @@ -84,7 +84,10 @@ func (this *Battle) OnInstallComp() { func (this *Battle) QueryBattleRecord(oid string) (errdata *pb.ErrorData, record *pb.DBBattleRecord) { var err error if record, err = this.modelBattle.queryrecord(oid); err != nil { - code = pb.ErrorCode_BattleNoFoundRecord + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleNoFoundRecord, + Title: pb.ErrorCode_BattleNoFoundRecord.ToString(), + } return } return @@ -111,7 +114,7 @@ func (this *Battle) CreateEveBattle(session comm.IUserSession, req *pb.BattleEVE return } - if record, code = this.modelBattle.createeve(session, conn, pb.BattleType_eve, req); errdata != nil { + if record, errdata = this.modelBattle.createeve(session, conn, pb.BattleType_eve, req); errdata != nil { return } return @@ -158,7 +161,7 @@ func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVE } } - if record, code = this.modelBattle.createpve(session, conn, pb.BattleType_pve, req); errdata != nil { + if record, errdata = this.modelBattle.createpve(session, conn, pb.BattleType_pve, req); errdata != nil { return } if req.Format.Friendformat != nil { @@ -194,7 +197,7 @@ func (this *Battle) CreatePvbBattle(session comm.IUserSession, req *pb.BattlePVB } return } - if record, code = this.modelBattle.createpvb(session, conn, pb.BattleType_pvb, req); errdata != nil { + if record, errdata = this.modelBattle.createpvb(session, conn, pb.BattleType_pvb, req); errdata != nil { return } return @@ -220,7 +223,7 @@ func (this *Battle) CreatePvpBattle(session comm.IUserSession, req *pb.BattlePVP this.Errorf("session:%v err:", session, err) return } - if record, code = this.modelBattle.createpvp(session, conn, pb.BattleType_pvp, req); errdata != nil { + if record, errdata = this.modelBattle.createpvp(session, conn, pb.BattleType_pvp, req); errdata != nil { return } return @@ -234,7 +237,10 @@ func (this *Battle) CreateRtPvpBattle(req *pb.BattleRTPVPReq) (errdata *pb.Error err error ) if !this.IsCross() { - code = pb.ErrorCode_Exception + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_Exception, + Title: pb.ErrorCode_Exception.ToString(), + } return } if redmodel, err = this.GetDBModelByUid(req.RedCompId, comm.TableHero); err != nil { @@ -253,7 +259,7 @@ func (this *Battle) CreateRtPvpBattle(req *pb.BattleRTPVPReq) (errdata *pb.Error } return } - if record, code = this.modelBattle.creatertpvp(redmodel, bluemodel, pb.BattleType_rtpvp, req); errdata != nil { + if record, errdata = this.modelBattle.creatertpvp(redmodel, bluemodel, pb.BattleType_rtpvp, req); errdata != nil { return } return @@ -300,7 +306,7 @@ func (this *Battle) CreateLPVEBattle(session comm.IUserSession, req *pb.BattleLP } } - if record, code = this.modelBattle.createlpve(session, conn, pb.BattleType_lpev, req); errdata != nil { + if record, errdata = this.modelBattle.createlpve(session, conn, pb.BattleType_lpev, req); errdata != nil { return } if req.Format.Friendformat != nil { @@ -311,7 +317,7 @@ func (this *Battle) CreateLPVEBattle(session comm.IUserSession, req *pb.BattleLP ///创建角色列表 更具Format表格 func (this *Battle) CreateRolesByFormat(fid int32) (captain int32, roles []*pb.BattleRole, errdata *pb.ErrorData) { - captain, roles, code = this.modelBattle.createMasterRoles(2, 0, fid) + captain, roles, errdata = this.modelBattle.createMasterRoles(2, 0, fid) return } @@ -320,7 +326,7 @@ func (this *Battle) CreateRolesByHeros(heros []*pb.DBHero) (roles []*pb.BattleRo roles = make([]*pb.BattleRole, len(heros)) for i, v := range heros { if v != nil { - if roles[i], code = this.modelBattle.createBattleRole(v, 200+i, i); errdata != nil { + if roles[i], errdata = this.modelBattle.createBattleRole(v, 200+i, i); errdata != nil { return } } @@ -338,7 +344,10 @@ func (this *Battle) GetBattleInfo(req *pb.BattleGetInfoReq) (errdata *pb.ErrorDa ctx, _ = context.WithTimeout(context.Background(), time.Second*5) if resp, err = this.clientmgr.GetInfo(ctx, req); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } return } @@ -354,10 +363,16 @@ func (this *Battle) CreateBattleServer(req *pb.BattleInfo) (errdata *pb.ErrorDat ctx, _ = context.WithTimeout(context.Background(), time.Second*5) if resp, err = this.clientmgr.CreateBattle(ctx, &pb.BattleCreateServerReq{Info: req}); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } if !resp.Issucc { - code = pb.ErrorCode_BattleCreateFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleCreateFailed, + Title: pb.ErrorCode_BattleCreateFailed.ToString(), + } } return } @@ -371,10 +386,16 @@ func (this *Battle) InCmdBattle(req *pb.BattleInCmdReq) (errdata *pb.ErrorData) ctx, _ = context.WithTimeout(context.Background(), time.Second*5) if resp, err = this.clientmgr.InCmdBattle(ctx, req); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } if !resp.Issucc { - code = pb.ErrorCode_BattleInCmdFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleInCmdFailed, + Title: pb.ErrorCode_BattleInCmdFailed.ToString(), + } } return } @@ -387,10 +408,16 @@ func (this *Battle) ConcedeBattle(req *pb.BattleConcedeReq) (errdata *pb.ErrorDa ) if resp, err = this.clientmgr.ConcedeBattle(context.Background(), req); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } if !resp.Issucc { - code = pb.ErrorCode_BattleInCmdFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleInCmdFailed, + Title: pb.ErrorCode_BattleInCmdFailed.ToString(), + } } return } @@ -411,7 +438,10 @@ func (this *Battle) CheckBattleReport(session comm.IUserSession, report *pb.Batt stime := time.Now() ctx, _ = context.WithTimeout(context.Background(), time.Second*5) if reply, err = this.clientmgr.CheckBattle(ctx, report); err != nil || !reply.Ischeck { - code = pb.ErrorCode_BattleValidationFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleValidationFailed, + Title: pb.ErrorCode_BattleValidationFailed.ToString(), + } this.Error("[Battle Check]", log.Field{Key: "t", Value: time.Since(stime).Milliseconds()}, log.Field{Key: "reply", Value: reply.String()}, @@ -429,5 +459,5 @@ func (this *Battle) CheckBattleReport(session comm.IUserSession, report *pb.Batt // this.ModuleBuried.SendToRtask(session, comm.Rtype157, int32(report.Info.Ptype), v) go this.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype157, int32(report.Info.Ptype), v)) } - return pb.ErrorCode_Success, true + return nil, true } diff --git a/modules/buried/api_send.go b/modules/buried/api_send.go index 80c21829b..466c35648 100644 --- a/modules/buried/api_send.go +++ b/modules/buried/api_send.go @@ -34,10 +34,6 @@ func (this *apiComp) InquireProgress(session comm.IUserSession, req *pb.BuriedIn Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } diff --git a/modules/chat/api_chanagechannel.go b/modules/chat/api_chanagechannel.go index c2e3492cf..77aeb5439 100644 --- a/modules/chat/api_chanagechannel.go +++ b/modules/chat/api_chanagechannel.go @@ -29,10 +29,6 @@ func (this *apiComp) ChanageChannel(session comm.IUserSession, req *pb.ChatChana Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } if ok { @@ -42,10 +38,6 @@ func (this *apiComp) ChanageChannel(session comm.IUserSession, req *pb.ChatChana Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{ diff --git a/modules/chat/api_crosschannel.go b/modules/chat/api_crosschannel.go index ac24d5262..0baf913ac 100644 --- a/modules/chat/api_crosschannel.go +++ b/modules/chat/api_crosschannel.go @@ -26,10 +26,6 @@ func (this *apiComp) CrossChannel(session comm.IUserSession, req *pb.ChatCrossCh Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), map[string]interface{}{ diff --git a/modules/chat/api_getlist.go b/modules/chat/api_getlist.go index ae18e9d6a..b28151df0 100644 --- a/modules/chat/api_getlist.go +++ b/modules/chat/api_getlist.go @@ -37,10 +37,6 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } break @@ -51,10 +47,6 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } break @@ -65,10 +57,6 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } break @@ -80,19 +68,12 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } if req.ChannelId != result.Chatchannel { errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - } - data = &pb.ErrorData{ - Title: code.ToString(), + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("req.ChannelId:%d != result.Chatchannel:%d", req.ChannelId, result.Chatchannel), } return @@ -103,10 +84,6 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } break @@ -117,10 +94,6 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } break @@ -128,11 +101,8 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.ChatGetListReq) this.module.Errorf("不存在的聊天频道类型channel:%d ", req.Channel) errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - } - data = &pb.ErrorData{ - Title: code.ToString(), + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("不存在的聊天频道类型 channel:%d ", req.Channel), } return diff --git a/modules/chat/api_send.go b/modules/chat/api_send.go index 96ee4ebe2..4eed60a1c 100644 --- a/modules/chat/api_send.go +++ b/modules/chat/api_send.go @@ -57,10 +57,6 @@ func (this *apiComp) Send(session comm.IUserSession, req *pb.ChatSendReq) (errda Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } @@ -80,7 +76,6 @@ func (this *apiComp) Send(session comm.IUserSession, req *pb.ChatSendReq) (errda session.SendMsg(string(this.module.GetType()), "send", &pb.ChatSendResp{Issucc: true}) return } - code = pb.ErrorCode_Success } if msg.Ctype == pb.ChatType_Text { //过滤敏感词 msg.Content = wordfilter.Replace(msg.Content, '*') @@ -132,11 +127,8 @@ func (this *apiComp) Send(session comm.IUserSession, req *pb.ChatSendReq) (errda default: this.module.Errorf("不存在的聊天频道类型channel:%d ", req.Channel) errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - } - data = &pb.ErrorData{ - Title: code.ToString(), + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("不存在的聊天频道类型 channel:%d ", req.Channel), } return diff --git a/modules/chat/modelChat.go b/modules/chat/modelChat.go index 0515b4baf..3df07c5ce 100644 --- a/modules/chat/modelChat.go +++ b/modules/chat/modelChat.go @@ -242,18 +242,18 @@ func (this *modelChatComp) saveUserMsg(msg *pb.DBChat) (err error) { // ) // if max, err = this.module.configure.GetChannelRecordMax(); err != nil { // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } +// Code: pb.ErrorCode_ConfigNoFound, +// Title: pb.ErrorCode_ConfigNoFound.ToString(), +// Message: err.Error(), +// } // return // } // if err = this.module.modelChat.addChatMsg(fmt.Sprintf("%s-%s", worldchatkey, msg.Stag), int64(max), msg); err != nil { // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } +// Code: pb.ErrorCode_DBError, +// Title: pb.ErrorCode_DBError.ToString(), +// Message: err.Error(), +// } // return // } // data, _ := anypb.New(&pb.ChatMessagePush{Chat: msg}) diff --git a/modules/chat/module.go b/modules/chat/module.go index a70c43c20..b5bdcfd53 100644 --- a/modules/chat/module.go +++ b/modules/chat/module.go @@ -163,7 +163,11 @@ func (this *Chat) SendWorldChat(msg *pb.DBChat) (errdata *pb.ErrorData) { msg, nil); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + Message: err.Error(), + } } } return @@ -198,7 +202,11 @@ func (this *Chat) SendUnionChat(msg *pb.DBChat) (errdata *pb.ErrorData) { msg, nil); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + Message: err.Error(), + } } } return @@ -218,7 +226,11 @@ func (this *Chat) SendUserChat(msg *pb.DBChat) (errdata *pb.ErrorData) { session.SendMsg(string(this.GetType()), "message", &pb.ChatMessagePush{Chat: msg}) if err = session.Push(); err != nil { this.Errorf("err:%v", err) - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } } else { @@ -284,7 +296,11 @@ func (this *Chat) SendSysChatToWorld(ctype comm.ChatSystemType, appenddata inter msg, nil); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + Message: err.Error(), + } } } } diff --git a/modules/combat/api_ask.go b/modules/combat/api_ask.go index 6d6f91932..3d699d708 100644 --- a/modules/combat/api_ask.go +++ b/modules/combat/api_ask.go @@ -51,10 +51,6 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.CombatAskReq) (errda Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } this.module.Errorln(err) return } @@ -70,9 +66,9 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.CombatAskReq) (errda if level.Pass != 2 { level.Progress = 0 if condis, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), lvconf.Maintask...); err != nil { - code = pb.ErrorCode_ExternalModule - data = &pb.ErrorData{ - Title: code.ToString(), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ExternalModule, + Title: pb.ErrorCode_ExternalModule.ToString(), Message: comm.NewExternalModuleErr("Buried", "CheckCondition", lvconf.Maintask).Error(), } return @@ -105,9 +101,9 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.CombatAskReq) (errda } if condis, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), lvconf.Subtask...); err != nil { - code = pb.ErrorCode_ExternalModule - data = &pb.ErrorData{ - Title: code.ToString(), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ExternalModule, + Title: pb.ErrorCode_ExternalModule.ToString(), Message: comm.NewExternalModuleErr("Buried", "CheckCondition", lvconf.Subtask).Error(), } return diff --git a/modules/combat/api_challenge.go b/modules/combat/api_challenge.go index 4166f1cee..b0c68b0a5 100644 --- a/modules/combat/api_challenge.go +++ b/modules/combat/api_challenge.go @@ -20,10 +20,6 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.CombatChalleng err error ) if errdata = this.ChallengeCheck(session, req); errdata != nil { - data = &pb.ErrorData{ - Title: code.ToString(), - Message: req.String(), - } return } @@ -33,21 +29,13 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.CombatChalleng Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } - if code, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ + if errdata, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ Ptype: pb.PlayType_combat, Format: req.Battle, Mformat: manster.FormatList, }); errdata != nil { - data = &pb.ErrorData{ - Title: code.ToString(), - Message: req.String(), - } return } session.SendMsg(string(this.module.GetType()), "challenge", &pb.CombatChallengeResp{Manster: req.Manster, Level: req.Level, Info: &pb.BattleInfo{ diff --git a/modules/combat/api_challengereceive.go b/modules/combat/api_challengereceive.go index cdaa7d564..bc0364457 100644 --- a/modules/combat/api_challengereceive.go +++ b/modules/combat/api_challengereceive.go @@ -28,7 +28,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC if errdata = this.ChallengeReceiveCheck(session, req); errdata != nil { return } - if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } if iswin { @@ -38,10 +38,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } + return } if lv, ok = info.Level[req.Level]; !ok { @@ -51,10 +48,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } + return } if manster, err = this.module.configure.getGameCombatManster(req.Manster); err != nil { @@ -63,10 +57,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } + return } for _, v := range lv.Passmanster { @@ -75,10 +66,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: fmt.Sprintf("req.Manster:%d 重复", code), - } + return } } @@ -90,10 +78,7 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } + return } @@ -112,10 +97,6 @@ func (this *apiComp) ChallengeReceive(session comm.IUserSession, req *pb.CombatC Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: err.Error(), - } return } } diff --git a/modules/forum/api_watchhero.go b/modules/forum/api_watchhero.go index 4599277e1..634bc22b5 100644 --- a/modules/forum/api_watchhero.go +++ b/modules/forum/api_watchhero.go @@ -27,7 +27,12 @@ func (this *apiComp) WatchHero(session comm.IUserSession, req *pb.ForumWatchHero return } if hero, err = this.module.modelForum.watchHero(req.Stag, req.Uid, req.HerocId); err != nil { - code = pb.ErrorCode_HeroNoExist + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HeroNoExist, + Title: pb.ErrorCode_HeroNoExist.ToString(), + Message: err.Error(), + } + return } equip = this.module.modelForum.watchHeroEquip(req.Stag, req.Uid, hero.EquipID...) session.SendMsg(string(this.module.GetType()), "watchhero", &pb.ForumWatchHeroResp{ diff --git a/modules/gateway/agent.go b/modules/gateway/agent.go index a5782f763..ae6d318b3 100644 --- a/modules/gateway/agent.go +++ b/modules/gateway/agent.go @@ -93,9 +93,9 @@ locp: }) continue } - var code pb.ErrorCode - code, err = this.secAuth(msg) - if err == nil { + var errdata *pb.ErrorData + errdata = this.secAuth(msg) + if errdata == nil { // this.gateway.Debugf("----------2 agent:%s uId:%s MainType:%s SubType:%s ", this.sessionId, this.uId, msg.MainType, msg.SubType) if err = this.messageDistribution(msg); err != nil { this.gateway.Errorf("messageDistribution err:%v", err) @@ -123,8 +123,8 @@ locp: MsgId: msg.MsgId, ReqMainType: msg.MainType, ReqSubType: msg.SubType, - Code: code, - Err: &pb.ErrorData{Title: "用户消息验证失败!", Datastring: err.Error()}, + Code: errdata.Code, + Err: errdata, }) if err = this.WriteMsg(&pb.UserMessage{ MsgId: msg.MsgId, @@ -170,21 +170,30 @@ locp: } // 安全认证 所有协议 -func (this *Agent) secAuth(msg *pb.UserMessage) (errdata *pb.ErrorData, err error) { +func (this *Agent) secAuth(msg *pb.UserMessage) (errdata *pb.ErrorData) { if !utils.ValidSecretKey(msg.Sec) { //验证失败 this.gateway.Errorf("%v", msg.Sec) - return pb.ErrorCode_SignError, fmt.Errorf("key invalid") + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SignError, + Title: pb.ErrorCode_SignError.ToString(), + Message: "key invalid", + } + return } return this.decodeUserData(msg) } // 解码 -func (this *Agent) decodeUserData(msg *pb.UserMessage) (errdata *pb.ErrorData, err error) { +func (this *Agent) decodeUserData(msg *pb.UserMessage) (errdata *pb.ErrorData) { base64Str := msg.Sec dec, err := base64.StdEncoding.DecodeString(base64Str[35:]) if err != nil { this.gateway.Errorf("base64 decode err %v", err) - return pb.ErrorCode_DecodeError, nil + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DecodeError, + Title: pb.ErrorCode_DecodeError.ToString(), + } + return } now := configure.Now().Unix() jsonRet := gjson.Parse(string(dec)) @@ -192,7 +201,12 @@ func (this *Agent) decodeUserData(msg *pb.UserMessage) (errdata *pb.ErrorData, e //秘钥30秒失效 if now-time.Unix(timestamp, 0).Unix() > 30 { this.gateway.Errorf("now:%v last timestamp:%v more than 30s", now, timestamp) - return pb.ErrorCode_TimestampTimeout, fmt.Errorf("sec key expire") + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_TimestampTimeout, + Title: pb.ErrorCode_TimestampTimeout.ToString(), + Message: "sec key expire", + } + return } //只有login的时候才需要设置Data @@ -206,21 +220,31 @@ func (this *Agent) decodeUserData(msg *pb.UserMessage) (errdata *pb.ErrorData, e ad, err := anypb.New(req) if err != nil { this.gateway.Errorf("decodeUserData pb err:%v", err) - return pb.ErrorCode_PbError, err + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PbError, + Title: pb.ErrorCode_PbError.ToString(), + Message: err.Error(), + } + return } msg.Data = ad } else { switch msg.MainType { case string(comm.ModuleNotify), string(comm.ModuleGate): - return pb.ErrorCode_Success, nil + return default: if this.UserId() == "" { this.gateway.Errorf("[%v.%v] Agent UId empty", msg.MainType, msg.SubType) - return pb.ErrorCode_AgentUidEmpty, fmt.Errorf("no login") + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_AgentUidEmpty, + Title: pb.ErrorCode_AgentUidEmpty.ToString(), + Message: "no login", + } + return } } } - return pb.ErrorCode_Success, nil + return } func (this *Agent) SessionId() string { diff --git a/modules/moonfantasy/api_ask.go b/modules/moonfantasy/api_ask.go index 6bd74c113..d16ccd86b 100644 --- a/modules/moonfantasy/api_ask.go +++ b/modules/moonfantasy/api_ask.go @@ -18,37 +18,48 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.MoonfantasyAskReq) ( lock *redis.RedisMutex // umfantasy *pb.DBUserMFantasy user *pb.DBUser - cd pb.ErrorCode isjson bool err error ) - defer func() { - session.SendMsg(string(this.module.GetType()), "ask", &pb.MoonfantasyAskResp{Code: cd, Info: mdata}) - }() - if cd = this.AskCheck(session, req); cd != pb.ErrorCode_Success { + if errdata = this.AskCheck(session, req); errdata != nil { return } //月之秘境需要加分布式锁 防止多人同时操作 if lock, err = this.module.modelDream.newDreamLock(req.Mid); err != nil { - cd = pb.ErrorCode_DBError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + } return } defer lock.Unlock() if err = lock.Lock(); err != nil { - cd = pb.ErrorCode_DBError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + } this.module.Errorln(err) return } if mdata, err = this.module.modelDream.querymfantasy(req.Mid); err != nil { - cd = pb.ErrorCode_DBError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + } return } if mdata == nil { - cd = pb.ErrorCode_MoonfantasyHasExpired + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyHasExpired, + Title: pb.ErrorCode_MoonfantasyHasExpired.ToString(), + } return } if this.module.modelDream.checkMFantasyExpiration(mdata) { //已过期 - cd = pb.ErrorCode_MoonfantasyHasExpired + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyHasExpired, + Title: pb.ErrorCode_MoonfantasyHasExpired.ToString(), + } return } for _, v := range mdata.Join { @@ -60,7 +71,10 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.MoonfantasyAskReq) ( if !isjson { if len(mdata.Join) >= int(mdata.Numup) { - cd = pb.ErrorCode_MoonfantasyJoinUp + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyJoinUp, + Title: pb.ErrorCode_MoonfantasyJoinUp.ToString(), + } return } // if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { @@ -85,5 +99,7 @@ func (this *apiComp) Ask(session comm.IUserSession, req *pb.MoonfantasyAskReq) ( "join": mdata.Join, }) } + + session.SendMsg(string(this.module.GetType()), "ask", &pb.MoonfantasyAskResp{Info: mdata}) return } diff --git a/modules/moonfantasy/api_battle.go b/modules/moonfantasy/api_battle.go index 87c89e3c7..d725d6e4f 100644 --- a/modules/moonfantasy/api_battle.go +++ b/modules/moonfantasy/api_battle.go @@ -14,59 +14,36 @@ func (this *apiComp) BattleCheck(session comm.IUserSession, req *pb.MoonfantasyB ///挑战怪物请求 func (this *apiComp) Battle(session comm.IUserSession, req *pb.MoonfantasyBattleReq) (errdata *pb.ErrorData) { var ( - boss *cfg.GameDreamlandBoosData - // umfantasy *pb.DBUserMFantasy + boss *cfg.GameDreamlandBoosData mdata *pb.DBMoonFantasy record *pb.DBBattleRecord - cd pb.ErrorCode isjoin bool err error ) - defer func() { - if cd == pb.ErrorCode_Success { - // this.module.modelUserMF.Change(session.GetUserId(), map[string]interface{}{ - // "ticket": umfantasy.Ticket, - // }) - this.module.modelDream.ChangeList("", mdata.Id, map[string]interface{}{ - "record": mdata.Record, - }) - session.SendMsg(string(this.module.GetType()), "battle", &pb.MoonfantasyBattleResp{ - Code: cd, - Mid: mdata.Monster, - Info: &pb.BattleInfo{ - Id: record.Id, - Title: record.Title, - Rulesid: boss.BattleReadyID, - Btype: record.Btype, - Ptype: record.Ptype, - RedCompId: record.RedCompId, - Redflist: record.Redflist, - BlueCompId: record.BlueCompId, - Buleflist: record.Buleflist, - }, - }) - // this.module.ModuleRtask.SendToRtask(session, comm.Rtype88, 1) - go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype88, 1)) - } else { - session.SendMsg(string(this.module.GetType()), "battle", &pb.MoonfantasyBattleResp{Code: cd}) - } - - }() - - if cd = this.BattleCheck(session, req); cd != pb.ErrorCode_Success { + if errdata = this.BattleCheck(session, req); errdata != nil { return } if mdata, err = this.module.modelDream.querymfantasy(req.Mid); err != nil { - cd = pb.ErrorCode_DBError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } return } if mdata == nil { - cd = pb.ErrorCode_MoonfantasyHasExpired + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyHasExpired, + Title: pb.ErrorCode_MoonfantasyHasExpired.ToString(), + } return } if this.module.modelDream.checkMFantasyExpiration(mdata) { //已过期 - cd = pb.ErrorCode_MoonfantasyHasExpired + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyHasExpired, + Title: pb.ErrorCode_MoonfantasyHasExpired.ToString(), + } return } for _, v := range mdata.Join { @@ -75,40 +52,52 @@ func (this *apiComp) Battle(session comm.IUserSession, req *pb.MoonfantasyBattle } } if !isjoin { - cd = pb.ErrorCode_MoonfantasyNoJoin + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyNoJoin, + Title: pb.ErrorCode_MoonfantasyNoJoin.ToString(), + } return } - // if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { - // cd = pb.ErrorCode_CacheReadError - // } - // if umfantasy.Ticket < this.module.ModuleTools.GetGlobalConf().DreamlandCos { - // cd = pb.ErrorCode_MoonfantasyNotEnoughbattles - // } - // umfantasy.Ticket -= this.module.ModuleTools.GetGlobalConf().DreamlandCos if boss, err = this.module.configure.GetMonsterById(mdata.Monster); err != nil { - cd = pb.ErrorCode_ConfigNoFound + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } - if cd = this.module.ModuleItems.RecoverTicket(session); cd != pb.ErrorCode_Success { + if errdata = this.module.ModuleItems.RecoverTicket(session); errdata != nil { return } - if cd = this.module.CheckRes(session, boss.PsConsume); cd != pb.ErrorCode_Success { + if errdata = this.module.CheckRes(session, boss.PsConsume); errdata != nil { return } if len(mdata.Join) >= int(mdata.Numup) { - cd = pb.ErrorCode_MoonfantasyJoinUp + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyJoinUp, + Title: pb.ErrorCode_MoonfantasyJoinUp.ToString(), + Message: err.Error(), + } return } if this.module.modelDream.checkMFantasyExpiration(mdata) { //已过期 - cd = pb.ErrorCode_MoonfantasyHasExpired + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyHasExpired, + Title: pb.ErrorCode_MoonfantasyHasExpired.ToString(), + Message: err.Error(), + } return } if v, ok := mdata.Record[session.GetUserId()]; ok { if v >= mdata.Unitmup { - cd = pb.ErrorCode_MoonfantasyDareUp + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_MoonfantasyDareUp, + Title: pb.ErrorCode_MoonfantasyDareUp.ToString(), + Message: err.Error(), + } return } else { mdata.Record[session.GetUserId()]++ @@ -117,10 +106,31 @@ func (this *apiComp) Battle(session comm.IUserSession, req *pb.MoonfantasyBattle mdata.Record[session.GetUserId()] = 1 } - cd, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ + if errdata, record = this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{ Ptype: pb.PlayType_moonfantasy, Format: req.Battle, Mformat: boss.Monsterformatid, + }); err != nil { + return + } + + this.module.modelDream.ChangeList("", mdata.Id, map[string]interface{}{ + "record": mdata.Record, }) + session.SendMsg(string(this.module.GetType()), "battle", &pb.MoonfantasyBattleResp{ + Mid: mdata.Monster, + Info: &pb.BattleInfo{ + Id: record.Id, + Title: record.Title, + Rulesid: boss.BattleReadyID, + Btype: record.Btype, + Ptype: record.Ptype, + RedCompId: record.RedCompId, + Redflist: record.Redflist, + BlueCompId: record.BlueCompId, + Buleflist: record.Buleflist, + }, + }) + go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype88, 1)) return } diff --git a/modules/moonfantasy/api_buy.go b/modules/moonfantasy/api_buy.go index bc0e032fc..0a5d7ccca 100644 --- a/modules/moonfantasy/api_buy.go +++ b/modules/moonfantasy/api_buy.go @@ -38,15 +38,15 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) ( Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } - data = &pb.ErrorData{ - Title: code.ToString(), - Message: comm.NewNotFoundConfErr(modelName, "global.json", "CopsBuyGet").Error(), - } return } if info, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil && err != mgo.MongodbNil { - code = pb.ErrorCode_CacheReadError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_CacheReadError, + Title: pb.ErrorCode_CacheReadError.ToString(), + Message: err.Error(), + } return } this.module.modelUserMF.recoverTicket(session, info) @@ -64,7 +64,11 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) ( for i := int32(0); i < req.BuyNum; i++ { if int(info.BuyNum+i+1) > maxbuy+vipbuy { - code = pb.ErrorCode_ArenaTicketBuyUp + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ArenaTicketBuyUp, + Title: pb.ErrorCode_ArenaTicketBuyUp.ToString(), + Message: err.Error(), + } return } if challengeD, err = this.module.configure.GetchallengeData(info.BuyNum + i + 1); err != nil || challengeD == nil { diff --git a/modules/moonfantasy/api_getlist.go b/modules/moonfantasy/api_getlist.go index bb22ad7b6..54440cf8f 100644 --- a/modules/moonfantasy/api_getlist.go +++ b/modules/moonfantasy/api_getlist.go @@ -20,16 +20,20 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.MoonfantasyGetLi mfantasys []*pb.DBMoonFantasy = make([]*pb.DBMoonFantasy, 0) ) if info, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil && err != mgo.MongodbNil { - code = pb.ErrorCode_CacheReadError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_CacheReadError, + Title: pb.ErrorCode_CacheReadError.ToString(), + Message: err.Error(), + } return } // this.module.modelUserMF.recoverTicket(session, info) // if err = this.module.modelUserMF.updateUserInfo(info); err != nil { - // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } + // errdata = &pb.ErrorData{ + // Code: pb.ErrorCode_DBError, + // Title: pb.ErrorCode_DBError.ToString(), + // Message: err.Error(), + // } // return // } this.module.ModuleItems.RecoverTicket(session) diff --git a/modules/moonfantasy/api_receive.go b/modules/moonfantasy/api_receive.go index f2078a997..00a60e59e 100644 --- a/modules/moonfantasy/api_receive.go +++ b/modules/moonfantasy/api_receive.go @@ -36,7 +36,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.MoonfantasyRecei } return } - if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, iswin = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } if !iswin { diff --git a/modules/moonfantasy/modelDream.go b/modules/moonfantasy/modelDream.go index b6073585a..b522860ea 100644 --- a/modules/moonfantasy/modelDream.go +++ b/modules/moonfantasy/modelDream.go @@ -202,10 +202,10 @@ func (this *modelDreamComp) noticeuserfriend(session comm.IUserSession, mid stri ) // if model, err = this.module.GetDBNodule(session, comm.TableFriend, 0); err != nil { // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } + // Code: pb.ErrorCode_DBError, + // Title: pb.ErrorCode_DBError.ToString(), + // Message: err.Error(), + // } // this.module.Errorf("session:%v err:%v", session, err) // return // } diff --git a/modules/parkour/api_invite.go b/modules/parkour/api_invite.go index 2ea6f7170..23a83b6bc 100644 --- a/modules/parkour/api_invite.go +++ b/modules/parkour/api_invite.go @@ -43,7 +43,11 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) return } if info.Captainid != "" && info.Captainid != session.GetUserId() { //自己不是队长 无权邀请他人 - code = pb.ErrorCode_ParkourInviteNoPermissions + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourInviteNoPermissions, + Title: pb.ErrorCode_ParkourInviteNoPermissions.ToString(), + Message: err.Error(), + } return } if len(info.Member) > 3 { @@ -54,7 +58,10 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) return } if tuser = this.module.ModuleUser.GetUser(session.GetUserId()); tuser == nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } if mount, err = this.module.configure.getGameBuzkashiMount(info.Dfmount); err != nil { @@ -85,7 +92,10 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) return } if tuser = this.module.ModuleUser.GetUser(req.Uid); tuser == nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } if mount, err = this.module.configure.getGameBuzkashiMount(tinfo.Dfmount); err != nil { @@ -112,7 +122,10 @@ func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) &pb.ParkourTeamChanagePush{Team: info}, users...) } else { if tinfo.Captainid != "" { - code = pb.ErrorCode_ParkourTargetTeamed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourTargetTeamed, + Title: pb.ErrorCode_ParkourTargetTeamed.ToString(), + } return } ok = false diff --git a/modules/parkour/api_invitehandle.go b/modules/parkour/api_invitehandle.go index 813a0f1f4..e334d3db7 100644 --- a/modules/parkour/api_invitehandle.go +++ b/modules/parkour/api_invitehandle.go @@ -47,7 +47,10 @@ func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInvi return } if len(tean.Member) >= 3 { - code = pb.ErrorCode_ParkourMemberFull + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourMemberFull, + Title: pb.ErrorCode_ParkourMemberFull.ToString(), + } return } if req.State == 3 { @@ -60,7 +63,10 @@ func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInvi } } if !ok { - code = pb.ErrorCode_ParkourInviteOverdue + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourInviteOverdue, + Title: pb.ErrorCode_ParkourInviteOverdue.ToString(), + } return } tean.Invite = append(tean.Invite[0:index], tean.Invite[index+1:]...) diff --git a/modules/parkour/api_jointeam.go b/modules/parkour/api_jointeam.go index 7c59c0baa..a6dc7ba06 100644 --- a/modules/parkour/api_jointeam.go +++ b/modules/parkour/api_jointeam.go @@ -42,12 +42,20 @@ func (this *apiComp) JoinTeam(session comm.IUserSession, req *pb.ParkourJoinTeam } // 状态校验 if info.State != pb.RaceTeamState_resting { // 不是休息中不能参加 - code = pb.ErrorCode_StateInvalid + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_StateInvalid, + Title: pb.ErrorCode_StateInvalid.ToString(), + Message: err.Error(), + } return } if len(info.Member) > 3 { - code = pb.ErrorCode_ParkourMemberFull + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourMemberFull, + Title: pb.ErrorCode_ParkourMemberFull.ToString(), + Message: err.Error(), + } return } if tean, err = this.module.parkourComp.queryinfo(req.Uid); err != nil { @@ -62,7 +70,12 @@ func (this *apiComp) JoinTeam(session comm.IUserSession, req *pb.ParkourJoinTeam users = make([]string, len(tean.Member)) for i, v := range tean.Member { if v.Uid == session.GetUserId() { - code = pb.ErrorCode_ParkourTargetTeamed // 自己已经在队伍中 + // 自己已经在队伍中 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ParkourTargetTeamed, + Title: pb.ErrorCode_ParkourTargetTeamed.ToString(), + Message: err.Error(), + } return } users[i] = v.Uid diff --git a/modules/parkour/api_racematch.go b/modules/parkour/api_racematch.go index 33234a71b..9a692f22c 100644 --- a/modules/parkour/api_racematch.go +++ b/modules/parkour/api_racematch.go @@ -48,7 +48,10 @@ func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMat team.Captainid = team.Uid team.State = pb.RaceTeamState_teaming if tuser = this.module.ModuleUser.GetUser(session.GetUserId()); tuser == nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } if mount, err = this.module.configure.getGameBuzkashiMount(team.Dfmount); err != nil { diff --git a/modules/pay/api_dailybuy.go b/modules/pay/api_dailybuy.go index b56befc46..2a038b919 100644 --- a/modules/pay/api_dailybuy.go +++ b/modules/pay/api_dailybuy.go @@ -47,7 +47,11 @@ func (this *apiComp) DailyBuy(session comm.IUserSession, req *pb.PayDailyBuyReq) } if info.Items[conf.Id] != nil { if info.Items[conf.Id].Buyunm <= 0 { - code = pb.ErrorCode_PayBuyNumNotEnough + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PayBuyNumNotEnough, + Title: pb.ErrorCode_PayBuyNumNotEnough.ToString(), + Message: err.Error(), + } return } } @@ -58,7 +62,7 @@ func (this *apiComp) DailyBuy(session comm.IUserSession, req *pb.PayDailyBuyReq) } } - if code, items = this.module.modelDaily.delivery(session, conf.Packagetype); errdata != nil { + if errdata, items = this.module.modelDaily.delivery(session, conf.Packagetype); errdata != nil { return } diff --git a/modules/pay/api_delivery.go b/modules/pay/api_delivery.go index dd617c518..2b3504c2a 100644 --- a/modules/pay/api_delivery.go +++ b/modules/pay/api_delivery.go @@ -28,6 +28,6 @@ func (this *apiComp) Delivery(session comm.IUserSession, req *pb.PayDeliveryReq) this.module.Errorln(err) return } - session.SendMsg(string(this.module.GetType()), "delivery", &pb.PayDeliveryResp{Code: code}) + session.SendMsg(string(this.module.GetType()), "delivery", &pb.PayDeliveryResp{}) return } diff --git a/modules/pay/module.go b/modules/pay/module.go index e51893e29..6fdde5889 100644 --- a/modules/pay/module.go +++ b/modules/pay/module.go @@ -77,6 +77,7 @@ func (this *Pay) Rpc_ModulePayDelivery(ctx context.Context, args *pb.PayDelivery res []*cfg.Gameatn items []*pb.UserAssets session comm.IUserSession + errdata *pb.ErrorData online bool ) @@ -98,12 +99,14 @@ func (this *Pay) Rpc_ModulePayDelivery(ctx context.Context, args *pb.PayDelivery this.PutUserSession(session) }() if session, online = this.GetUserSession(args.Uid); online { - if reply.Code = this.DispenseRes(session, res, true); reply.Code != pb.ErrorCode_Success { + if errdata = this.DispenseRes(session, res, true); errdata != nil { + reply.Code = errdata.Code return } } else { - if reply.Code = this.DispenseRes(session, res, false); reply.Code != pb.ErrorCode_Success { + if errdata = this.DispenseRes(session, res, false); errdata != nil { + reply.Code = errdata.Code return } } @@ -122,10 +125,16 @@ func (this *Pay) Rpc_ModulePayDelivery(ctx context.Context, args *pb.PayDelivery case 1: break case 2: - reply.Code, items = this.modelDaily.delivery(session, args.Productid) + if errdata, items = this.modelDaily.delivery(session, args.Productid); errdata != nil { + reply.Code = errdata.Code + return + } break case 3: - reply.Code, items = this.privilege.Delivery(session, args.Productid) + if errdata, items = this.privilege.Delivery(session, args.Productid); errdata != nil { + reply.Code = errdata.Code + return + } break } for _, v := range res { @@ -204,10 +213,14 @@ func (this *Pay) ModulePayDelivery(session comm.IUserSession, Productid string, case 1: break case 2: - code, items = this.modelDaily.delivery(session, Productid) + if errdata, items = this.modelDaily.delivery(session, Productid); errdata != nil { + return + } break case 3: - code, items = this.privilege.Delivery(session, Productid) + if errdata, items = this.privilege.Delivery(session, Productid); errdata != nil { + return + } break } for _, v := range res { diff --git a/modules/practice/api_accept.go b/modules/practice/api_accept.go index 9c88aa84c..7f0134db4 100644 --- a/modules/practice/api_accept.go +++ b/modules/practice/api_accept.go @@ -49,14 +49,20 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq return } if redRecord.Status == 1 { //已经在战斗中了 - code = pb.ErrorCode_PracticeQiecuoing + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeQiecuoing, + Title: pb.ErrorCode_PracticeQiecuoing.ToString(), + } return } keep = false for _, v := range redRecord.Targets { if v.Uid == session.GetUserId() { if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { - code = pb.ErrorCode_PracticeInviteTimeOut + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeInviteTimeOut, + Title: pb.ErrorCode_PracticeInviteTimeOut.ToString(), + } return } keep = true @@ -73,22 +79,28 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq //发起者 red red := this.module.ModuleUser.GetUser(req.Uid) if red == nil { - code = pb.ErrorCode_UserNofound + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserNofound, + Title: pb.ErrorCode_UserNofound.ToString(), + } this.module.Error("未找到红方信息", log.Field{Key: "uid", Value: req.Uid}) return } blue := this.module.ModuleUser.GetUser(session.GetUserId()) if blue == nil { - code = pb.ErrorCode_UserNofound + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserNofound, + Title: pb.ErrorCode_UserNofound.ToString(), + } this.module.Error("未找到蓝方信息", log.Field{Key: "uid", Value: session.GetUserId()}) return } - if redRecord.Battid, code = this.module.pvp.CreatePvp( + if redRecord.Battid, errdata = this.module.pvp.CreatePvp( &pb.PvpUserInfo{Uid: red.Uid, Name: red.Name, Avatar: red.Avatar, Lv: red.Lv}, &pb.PvpUserInfo{Uid: blue.Uid, Name: blue.Name, Avatar: blue.Avatar, Lv: blue.Lv}, pb.PvpType_friends, ); errdata != nil { - this.module.Error("CreatePvp", log.Field{Key: "code", Value: code}) + this.module.Error("CreatePvp", log.Field{Key: "code", Value: errdata}) return } redRecord.Status = 1 @@ -109,7 +121,11 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq if err := session.SendMsg(string(this.module.GetType()), "accept", &pb.FriendAcceptResp{ IsSucc: true, }); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } diff --git a/modules/practice/api_expulsion.go b/modules/practice/api_expulsion.go index 5b1ea5151..30dad520f 100644 --- a/modules/practice/api_expulsion.go +++ b/modules/practice/api_expulsion.go @@ -99,7 +99,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls if conf, err := this.module.configure.getGamePandamasYxjx(k); err != nil { this.module.Errorln(err) } else if v/conf.Register > 0 { - if hero, code := this.module.ModuleHero.GetHeroByObjID(session.GetUserId(), pillar.Hero); code == pb.ErrorCode_Success { + if hero, errdata := this.module.ModuleHero.GetHeroByObjID(session.GetUserId(), pillar.Hero); errdata == nil { if heroconf, _ := this.module.configure.GetHeroConfig(hero.HeroID); heroconf != nil { if (conf.Camp == 0 || (conf.Camp != 0 && heroconf.Race == conf.Camp)) && (conf.Occupation == 0 || (conf.Occupation != 0 && heroconf.Job == conf.Occupation)) { exp1 += minutes * int32(math.Floor(float64(v/conf.Register)*float64(conf.ExpBonus))) * exp @@ -196,7 +196,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls } } _session, ok = this.module.GetUserSession(pillar.Uid) - if _, code = this.module.ModuleHero.AddHeroExp(_session, pillar.Hero, exp); errdata != nil { + if _, errdata = this.module.ModuleHero.AddHeroExp(_session, pillar.Hero, exp); errdata != nil { return } if errdata = this.module.ModuleHero.KungFuHero(_session, pillar.Hero, false, ""); errdata != nil { diff --git a/modules/practice/api_gymrefresh.go b/modules/practice/api_gymrefresh.go index b461349e4..6fae8137d 100644 --- a/modules/practice/api_gymrefresh.go +++ b/modules/practice/api_gymrefresh.go @@ -67,7 +67,11 @@ func (this *apiComp) GymRefresh(session comm.IUserSession, req *pb.PracticeGymRe } } if len(confs) == 0 { - code = pb.ErrorCode_ConfigurationException + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigurationException, + Title: pb.ErrorCode_ConfigurationException.ToString(), + Message: err.Error(), + } return } r := rand.New(rand.NewSource(configure.Now().Unix())) diff --git a/modules/practice/api_npcbattkle.go b/modules/practice/api_npcbattkle.go index 0aa11f686..b6d67cd9d 100644 --- a/modules/practice/api_npcbattkle.go +++ b/modules/practice/api_npcbattkle.go @@ -27,7 +27,7 @@ func (this *apiComp) NPCBattkle(session comm.IUserSession, req *pb.PracticeNPCBa return } - if code, record = this.module.battle.CreateLPVEBattle(session, &pb.BattleLPVEReq{ + if errdata, record = this.module.battle.CreateLPVEBattle(session, &pb.BattleLPVEReq{ Ptype: pb.PlayType_practicenpc, Format: req.Formation, Monsterleadpos: room.Captain, diff --git a/modules/practice/api_npcbattklefinish.go b/modules/practice/api_npcbattklefinish.go index bc6e06b09..45e74b02c 100644 --- a/modules/practice/api_npcbattklefinish.go +++ b/modules/practice/api_npcbattklefinish.go @@ -36,7 +36,7 @@ func (this *apiComp) NPCBattkleFinish(session comm.IUserSession, req *pb.Practic return } - if code, _ = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { + if errdata, _ = this.module.battle.CheckBattleReport(session, req.Report); errdata != nil { return } diff --git a/modules/practice/api_npcdialog.go b/modules/practice/api_npcdialog.go index d47225675..670336b8e 100644 --- a/modules/practice/api_npcdialog.go +++ b/modules/practice/api_npcdialog.go @@ -20,25 +20,25 @@ func (this *apiComp) NPCDialog(session comm.IUserSession, req *pb.PracticeNPCDia // ) // if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } + // Code: pb.ErrorCode_DBError, + // Title: pb.ErrorCode_DBError.ToString(), + // Message: err.Error(), + // } // return // } // if room.Npcstate != 2 { // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ReqParameterError, - Title: pb.ErrorCode_ReqParameterError.ToString(), - } + // Code: pb.ErrorCode_ReqParameterError, + // Title: pb.ErrorCode_ReqParameterError.ToString(), + // } // return // } // // if conf, err = this.module.configure.getDispatchBattleData(room.Currnpc); err != nil { // // errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } + // Code: pb.ErrorCode_ConfigNoFound, + // Title: pb.ErrorCode_ConfigNoFound.ToString(), + // Message: err.Error(), + // } // // return // // } // // if errdata = this.module.DispenseRes(session, conf.StoryAward, true); errdata != nil { diff --git a/modules/practice/api_qiecuo.go b/modules/practice/api_qiecuo.go index 03518f670..62737c865 100644 --- a/modules/practice/api_qiecuo.go +++ b/modules/practice/api_qiecuo.go @@ -54,27 +54,43 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq if result.Battid == fresult.Battid { //两个人正在战斗中 if battle, err = this.module.pvp.QueryBattle(result.Battid); err != nil { this.module.Error("查询pvp数据失败!", log.Field{Key: "id", Value: result.Battid}, log.Field{Key: "err", Value: err.Error()}) - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } if err = session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{Fid: req.Fid, Isbattle: true, Battle: battle}); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } return } else { if result.Status == 1 { - code = pb.ErrorCode_PracticeYouQiecuoing + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeYouQiecuoing, + Title: pb.ErrorCode_PracticeYouQiecuoing.ToString(), + } return } else { - code = pb.ErrorCode_PracticeTargetQiecuoing + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeTargetQiecuoing, + Title: pb.ErrorCode_PracticeTargetQiecuoing.ToString(), + } return } } } //目标是否在线 if !this.module.ModuleUser.IsOnline(req.Fid) { - code = pb.ErrorCode_UserOffline + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserOffline, + Title: pb.ErrorCode_UserOffline.ToString(), + } return } @@ -94,7 +110,10 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { v.Timestamp = configure.Now().Unix() } else { - code = pb.ErrorCode_PracticeSent + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeSent, + Title: pb.ErrorCode_PracticeSent.ToString(), + } return } } @@ -110,7 +129,10 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq }) if err = session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{Fid: req.Fid}); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } diff --git a/modules/practice/api_receive.go b/modules/practice/api_receive.go index 09c0450ab..4cdc7221f 100644 --- a/modules/practice/api_receive.go +++ b/modules/practice/api_receive.go @@ -235,7 +235,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.PracticeReceiveR } } this.module.Debug("最终经验加成", log.Field{Key: "exp", Value: exp}, log.Field{Key: "exp1", Value: exp1}) - if _, code = this.module.ModuleHero.AddHeroExp(session, pillar.Hero, exp1); errdata != nil { + if _, errdata = this.module.ModuleHero.AddHeroExp(session, pillar.Hero, exp1); errdata != nil { return } if errdata = this.module.DispenseRes(session, append(ants1, ants2...), true); errdata != nil { diff --git a/modules/practice/api_refuse.go b/modules/practice/api_refuse.go index ca3231036..62cddcd84 100644 --- a/modules/practice/api_refuse.go +++ b/modules/practice/api_refuse.go @@ -73,7 +73,11 @@ func (this *apiComp) Refuse(session comm.IUserSession, req *pb.PracticeRefuseReq if err := session.SendMsg(string(this.module.GetType()), "refuse", &pb.PracticeRefuseResp{ IsSucc: true, }); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } diff --git a/modules/practice/api_upgrade.go b/modules/practice/api_upgrade.go index 8ed9a575e..273fae038 100644 --- a/modules/practice/api_upgrade.go +++ b/modules/practice/api_upgrade.go @@ -55,7 +55,10 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.PracticeUpgradeR return } if pillarconfigure, err = this.module.configure.getGamePandamasMz(pillar.Lv); err != nil || len(pillarconfigure.UpLvConsume) == 0 { - code = pb.ErrorCode_PracticePillarMaxLv + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticePillarMaxLv, + Title: pb.ErrorCode_PracticePillarMaxLv.ToString(), + } return } diff --git a/modules/practice/modelPandata.go b/modules/practice/modelPandata.go index fb36e0208..9529824aa 100644 --- a/modules/practice/modelPandata.go +++ b/modules/practice/modelPandata.go @@ -116,10 +116,10 @@ func (this *modelPandata) queryrooms(uids []string) (results []*pb.DBPracticeRoo //刷新npc func (this *modelPandata) refreshnpc(room *pb.DBPracticeRoom) (err error) { var ( - npcs []*cfg.GameDispatch_BattleData - wigets []int32 - index int32 - code pb.ErrorCode + npcs []*cfg.GameDispatch_BattleData + wigets []int32 + index int32 + errdata *pb.ErrorData ) if npcs, err = this.module.configure.getDispatchBattle(); err != nil { @@ -134,8 +134,8 @@ func (this *modelPandata) refreshnpc(room *pb.DBPracticeRoom) (err error) { room.Currnpc = npcs[index].Id room.Npcstate = 0 room.Battlenum = 0 - if room.Captain, room.Formation, code = this.module.battle.CreateRolesByFormat(npcs[index].MonsterformatId); errdata != nil { - err = fmt.Errorf("CreateRolesByFormat fail:%d", code) + if room.Captain, room.Formation, errdata = this.module.battle.CreateRolesByFormat(npcs[index].MonsterformatId); errdata != nil { + err = fmt.Errorf("CreateRolesByFormat fail:%+v", errdata) return } return diff --git a/modules/pvp/api_activecancel.go b/modules/pvp/api_activecancel.go index 779343a26..3a0f04e88 100644 --- a/modules/pvp/api_activecancel.go +++ b/modules/pvp/api_activecancel.go @@ -51,7 +51,10 @@ func (this *apiComp) ActiveCancel(session comm.IUserSession, req *pb.PvpActiveCa } } } else { - code = pb.ErrorCode_BattleInCmdFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleInCmdFailed, + Title: pb.ErrorCode_BattleInCmdFailed.ToString(), + } return } diff --git a/modules/pvp/api_incmd.go b/modules/pvp/api_incmd.go index 6784310b8..a8b17684a 100644 --- a/modules/pvp/api_incmd.go +++ b/modules/pvp/api_incmd.go @@ -18,14 +18,9 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (errd battle *BattleItem side int32 ok bool - cd pb.ErrorCode ) - defer func() { - session.SendMsg(string(this.module.GetType()), "incmd", &pb.PvpInCmdResp{Code: cd, Battleid: req.Battleid, Cmd: req.Cmd}) - }() - - if cd = this.InCmdCheck(session, req); cd != pb.ErrorCode_Success { + if errdata = this.InCmdCheck(session, req); errdata != nil { return } this.module.lock.RLock() @@ -50,11 +45,11 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (errd return } //技能释放指令 - if cd = this.module.battle.InCmdBattle(&pb.BattleInCmdReq{ + if errdata = this.module.battle.InCmdBattle(&pb.BattleInCmdReq{ Battleid: req.Battleid, Side: side, In: req.Cmd, - }); cd != pb.ErrorCode_Success { + }); errdata != nil { return } else { if battle.operatetimer != nil { @@ -62,9 +57,13 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (errd } } } else { - cd = pb.ErrorCode_BattleInCmdFailed + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleInCmdFailed, + Title: pb.ErrorCode_BattleInCmdFailed.ToString(), + } return } + session.SendMsg(string(this.module.GetType()), "incmd", &pb.PvpInCmdResp{Battleid: req.Battleid, Cmd: req.Cmd}) return } diff --git a/modules/pvp/api_into.go b/modules/pvp/api_into.go index 7a6baee07..aa0a6bdda 100644 --- a/modules/pvp/api_into.go +++ b/modules/pvp/api_into.go @@ -15,7 +15,6 @@ func (this *apiComp) Into(session comm.IUserSession, req *pb.PvpIntoReq) (errdat var ( battle *BattleItem resp *pb.BattleGetInfoResp = &pb.BattleGetInfoResp{} - cd pb.ErrorCode ok bool ) if errdata = this.IntoCheck(session, req); errdata != nil { @@ -25,23 +24,21 @@ func (this *apiComp) Into(session comm.IUserSession, req *pb.PvpIntoReq) (errdat battle, ok = this.module.battles[req.Battleid] this.module.lock.RUnlock() if ok { - if cd, resp = this.module.battle.GetBattleInfo(&pb.BattleGetInfoReq{ + if errdata, resp = this.module.battle.GetBattleInfo(&pb.BattleGetInfoReq{ Battleid: req.Battleid, - }); cd == pb.ErrorCode_Success { - battle.lock.Lock() - if session.GetUserId() == battle.Red.Uid { - battle.RedOffline = false - battle.RedSession.SetSession(session.GetIP(), session.GetSessionId(), session.GetServiecTag(), session.GetGatewayServiceId(), session.GetUserId()) - } else { - battle.BlueOffline = false - battle.BlueSession.SetSession(session.GetIP(), session.GetSessionId(), session.GetServiecTag(), session.GetGatewayServiceId(), session.GetUserId()) - } - battle.lock.Unlock() + }); errdata != nil { + return } - } else { - cd = pb.ErrorCode_BattleInCmdFailed - return } - session.SendMsg(string(this.module.GetType()), "into", &pb.PvpIntoResp{Code: cd, Battleid: req.Battleid, Info: resp.Info}) + battle.lock.Lock() + if session.GetUserId() == battle.Red.Uid { + battle.RedOffline = false + battle.RedSession.SetSession(session.GetIP(), session.GetSessionId(), session.GetServiecTag(), session.GetGatewayServiceId(), session.GetUserId()) + } else { + battle.BlueOffline = false + battle.BlueSession.SetSession(session.GetIP(), session.GetSessionId(), session.GetServiecTag(), session.GetGatewayServiceId(), session.GetUserId()) + } + battle.lock.Unlock() + session.SendMsg(string(this.module.GetType()), "into", &pb.PvpIntoResp{Battleid: req.Battleid, Info: resp.Info}) return } diff --git a/modules/pvp/api_loadcomplete.go b/modules/pvp/api_loadcomplete.go index 364022e04..976182c7e 100644 --- a/modules/pvp/api_loadcomplete.go +++ b/modules/pvp/api_loadcomplete.go @@ -43,7 +43,10 @@ func (this *apiComp) LoadComplete(session comm.IUserSession, req *pb.PvpLoadComp } } } else { - code = pb.ErrorCode_BattleNoKeep + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleNoKeep, + Title: pb.ErrorCode_BattleNoKeep.ToString(), + } return } session.SendMsg(string(this.module.GetType()), "into", &pb.PvpLoadCompleteResp{Battleid: req.Battleid, Issucc: true}) diff --git a/modules/pvp/module.go b/modules/pvp/module.go index 3a07c209f..76ac97a49 100644 --- a/modules/pvp/module.go +++ b/modules/pvp/module.go @@ -100,11 +100,17 @@ func (this *Pvp) CreatePvp(red, blue *pb.PvpUserInfo, ptype pb.PvpType) (battleI } if battle.RedSession, ok = this.GetUserSession(red.Uid); !ok { - code = pb.ErrorCode_BattleUserOff + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleUserOff, + Title: pb.ErrorCode_BattleUserOff.ToString(), + } return } if battle.BlueSession, ok = this.GetUserSession(blue.Uid); !ok { - code = pb.ErrorCode_BattleUserOff + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleUserOff, + Title: pb.ErrorCode_BattleUserOff.ToString(), + } return } this.lock.Lock() @@ -118,7 +124,10 @@ func (this *Pvp) CreatePvp(red, blue *pb.PvpUserInfo, ptype pb.PvpType) (battleI Countdown: 60, }, battle.RedSession, battle.BlueSession); err != nil { this.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } return } @@ -127,11 +136,11 @@ func (this *Pvp) CreatePvp(red, blue *pb.PvpUserInfo, ptype pb.PvpType) (battleI func (this *Pvp) PvpOutCmdPush(out *pb.PvpOutCmdPush) { this.Debug("PvpOutCmdPush", log.Field{Key: "args", Value: out}) var ( - battle *BattleItem - ok bool - data []byte - code pb.ErrorCode - err error + battle *BattleItem + ok bool + errdata *pb.ErrorData + data []byte + err error ) this.lock.RLock() battle, ok = this.battles[out.Battleid] @@ -263,11 +272,11 @@ func (this *Pvp) readyTimeOut(task *timewheel.Task, args ...interface{}) { func (this *Pvp) operateTimeOut(task *timewheel.Task, args ...interface{}) { this.Debug("operateTimeOut", log.Field{Key: "args", Value: args}) var ( - id string - battle *BattleItem - ok bool - code pb.ErrorCode - data []byte + id string + battle *BattleItem + ok bool + errdata *pb.ErrorData + data []byte ) id = args[0].(string) this.lock.RLock() @@ -294,12 +303,12 @@ func (this *Pvp) operateTimeOut(task *timewheel.Task, args ...interface{}) { func (this *Pvp) startBattle(battle *BattleItem) { this.Debug("PVPStart", log.Field{Key: "battleId", Value: battle.Id}) var ( - record *pb.DBBattleRecord - info *pb.BattleInfo - code pb.ErrorCode - err error + record *pb.DBBattleRecord + info *pb.BattleInfo + errdata *pb.ErrorData + err error ) - if code, record = this.battle.CreateRtPvpBattle(&pb.BattleRTPVPReq{ + if errdata, record = this.battle.CreateRtPvpBattle(&pb.BattleRTPVPReq{ Ptype: pb.PlayType_friendsmeet, Title: "", RedCompId: battle.Red.Uid, @@ -316,6 +325,7 @@ func (this *Pvp) startBattle(battle *BattleItem) { }, battle.RedSession, battle.BlueSession); err != nil { this.Errorln(err) } + return } else { record.Id = battle.Id info = &pb.BattleInfo{ @@ -441,11 +451,11 @@ func (this *Pvp) useroffline(uid, sessionid string) { //托管 func (this *Pvp) trusteeship(ctx context.Context, req *pb.RPC_PVPTrusteeshipReq, resp *pb.RPC_PVPTrusteeshipResp) (err error) { var ( - battle *BattleItem - ok bool - side int32 - data []byte - code pb.ErrorCode + battle *BattleItem + ok bool + side int32 + data []byte + errdata *pb.ErrorData ) for _, bid := range req.Battleid { this.lock.RLock() diff --git a/modules/shop/api_buy.go b/modules/shop/api_buy.go index 1ba3692f1..15d7b41b2 100644 --- a/modules/shop/api_buy.go +++ b/modules/shop/api_buy.go @@ -36,7 +36,11 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ShopBuyReq) (errdata } if conf, err = this.module.configure.GetShopItemsConfigure(req.GoodsId); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } if shopData, err = this.module.modelShop.QueryUserShopData(session.GetUserId()); err != nil { //没有购买记录 @@ -107,7 +111,11 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ShopBuyReq) (errdata } } if conf.Buyminnum-record.Buy[req.GoodsId] < req.BuyNum { - code = pb.ErrorCode_ShopGoodsIsSoldOut + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ShopGoodsIsSoldOut, + Title: pb.ErrorCode_ShopGoodsIsSoldOut.ToString(), + Message: err.Error(), + } return } record.Buy[req.GoodsId] += req.BuyNum diff --git a/modules/shop/api_getlist.go b/modules/shop/api_getlist.go index d9eeecad1..7668920cf 100644 --- a/modules/shop/api_getlist.go +++ b/modules/shop/api_getlist.go @@ -55,7 +55,10 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) return } if udata = this.module.ModuleUser.GetUser(session.GetUserId()); udata == nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } return } @@ -137,7 +140,10 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) if !isrefresh { //剩余刷新次数为零 if leftrefnum == 0 { - code = pb.ErrorCode_ShopNoSurplusRefreshNum + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ShopNoSurplusRefreshNum, + Title: pb.ErrorCode_ShopNoSurplusRefreshNum.ToString(), + } return } else if leftrefnum > 0 { leftrefnum-- @@ -151,9 +157,9 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) var _items []*cfg.GameShopitemData for _, v := range shopconf.Shopitem { if _items, err = this.module.configure.GetShopItemsConfigureByGroups(v, udata); err != nil || len(_items) == 0 { - code = pb.ErrorCode_SystemError - data = &pb.ErrorData{ - Title: pb.GetErrorCodeMsg(code), + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), Message: err.Error(), } return @@ -169,7 +175,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) for i, v := range items { sdata.Items[i] = v.Key if v.Preview { //是否预览 - if code, sdata.Preview[v.Key] = this.module.equip.NewEquipment(session.GetUserId(), v.Iteminfo[0].T); errdata != nil { + if errdata, sdata.Preview[v.Key] = this.module.equip.NewEquipment(session.GetUserId(), v.Iteminfo[0].T); errdata != nil { return } } @@ -198,7 +204,11 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) for _, v := range shopconf.Shopitem { if _items, err = this.module.configure.GetShopItemsConfigureByGroups(v, udata); err != nil || len(_items) == 0 { this.module.Error("no founf shopgroup", log.Field{Key: "gid", Value: v}) - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } items = append(items, randomGoods(_items)) @@ -210,7 +220,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) for i, v := range items { sdata.Items[i] = v.Key if v.Preview { //是否预览 - if code, sdata.Preview[v.Key] = this.module.equip.NewEquipment(session.GetUserId(), v.Iteminfo[0].T); errdata != nil { + if errdata, sdata.Preview[v.Key] = this.module.equip.NewEquipment(session.GetUserId(), v.Iteminfo[0].T); errdata != nil { return } } @@ -221,7 +231,11 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq) go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype105, 1)) } else { //返回以前的商品列表 if items, err = this.module.configure.GetShopItemsConfigureByIds(sdata.Items...); err != nil { - code = pb.ErrorCode_SystemError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), + } return } goods = transGoods(items, sdata) diff --git a/modules/web/api_createnotify.go b/modules/web/api_createnotify.go index 422f227d2..302f28557 100644 --- a/modules/web/api_createnotify.go +++ b/modules/web/api_createnotify.go @@ -18,17 +18,18 @@ func (this *Api_Comp) CreateNotify(c *engine.Context) { err := c.BindJSON(&req) this.module.Debugf("CreateNotify:%+v err:%v", req, err) var ( - code pb.ErrorCode - msg string - data interface{} + errdata *pb.ErrorData + data interface{} ) defer func() { - c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data}) + c.JSON(http.StatusOK, &Respond{Code: errdata.Code, Message: errdata.Message, Data: data}) }() if sign := gin.ParamSign(this.options.Key, map[string]interface{}{"Title": req.Title, "Ctime": req.Ctime, "Rtime": req.Rtime}); sign != req.Sign { this.module.Errorf("LoginByCaptchaReq SignError sgin:%s", sign) - code = pb.ErrorCode_SignError - msg = pb.GetErrorCodeMsg(code) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SignError, + Title: pb.ErrorCode_SignError.ToString(), + } return } if len(req.Title) == 0 { @@ -36,7 +37,6 @@ func (this *Api_Comp) CreateNotify(c *engine.Context) { Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } - msg = pb.GetErrorCodeMsg(code) return } if err = this.module.modelNotify.CreateSystemNotify(&req.DBSystemNotify); err != nil { @@ -46,8 +46,10 @@ func (this *Api_Comp) CreateNotify(c *engine.Context) { Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } - msg = pb.GetErrorCodeMsg(code) return } - msg = pb.GetErrorCodeMsg(code) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_Success, + Title: pb.ErrorCode_Success.ToString(), + } } diff --git a/modules/web/api_creatmail.go b/modules/web/api_creatmail.go index 22a419749..8dbce0982 100644 --- a/modules/web/api_creatmail.go +++ b/modules/web/api_creatmail.go @@ -30,19 +30,17 @@ func (this *Api_Comp) CreateMail(c *engine.Context) { err := c.BindJSON(&req) this.module.Debugf("CrateMail:%+v err:%v", req, err) var ( - code pb.ErrorCode - msg string - data interface{} + errdata *pb.ErrorData + data interface{} ) if db.IsCross() { // 跨服服务器不能发邮件 errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } - msg = pb.GetErrorCodeMsg(code) return } - defer c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data}) + defer c.JSON(http.StatusOK, &Respond{Code: errdata.Code, Message: errdata.Message, Data: data}) if sign := gin.ParamSign(this.options.Key, map[string]interface{}{ "uid": req.Uid, "title": req.Title, @@ -50,8 +48,10 @@ func (this *Api_Comp) CreateMail(c *engine.Context) { "cid": req.Cid, }); sign != req.Sign { this.module.Errorf("LoginByCaptchaReq SignError sgin:%s", sign) - code = pb.ErrorCode_SignError - msg = pb.GetErrorCodeMsg(code) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SignError, + Title: pb.ErrorCode_SignError.ToString(), + } return } @@ -72,15 +72,20 @@ func (this *Api_Comp) CreateMail(c *engine.Context) { mail.Reward = true } - msg = pb.GetErrorCodeMsg(code) - if _, err = this.module.service.RpcGo( context.Background(), comm.Service_Worker, string(comm.Rpc_Mail), mail, nil); err != nil { this.module.Errorln(err) - code = pb.ErrorCode_RpcFuncExecutionError - msg = pb.GetErrorCodeMsg(code) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } + return + } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_Success, + Title: pb.ErrorCode_Success.ToString(), } } diff --git a/modules/web/api_upload.go b/modules/web/api_upload.go index 88f6eed83..215d6b1ae 100644 --- a/modules/web/api_upload.go +++ b/modules/web/api_upload.go @@ -14,20 +14,18 @@ import ( //上传配置文件 func (this *Api_Comp) Upload(c *engine.Context) { var ( - code pb.ErrorCode - msg string + errdata *pb.ErrorData ) defer func() { c.JSON(http.StatusOK, &Respond{ - Code: code, - Message: msg, + Code: errdata.Code, + Message: errdata.Message, }) }() filenum := c.PostForm("filenum") if filenum != "" { if n, err := strconv.Atoi(filenum); err != nil { this.module.Errorln(err) - msg = err.Error() errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), @@ -37,7 +35,6 @@ func (this *Api_Comp) Upload(c *engine.Context) { for i := 0; i < n; i++ { if fn, err := c.FormFile(fmt.Sprintf("file_%d", i)); err != nil { this.module.Errorln(err) - msg = err.Error() errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), @@ -46,7 +43,6 @@ func (this *Api_Comp) Upload(c *engine.Context) { } else { if err = c.SaveUploadedFile(fn, fmt.Sprintf("%s/%s", configure.ConfigurePath(), fn.Filename)); err != nil { this.module.Errorln(err) - msg = err.Error() errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), @@ -63,8 +59,10 @@ func (this *Api_Comp) Upload(c *engine.Context) { &pb.EmptyReq{}, &pb.EmptyResp{}); err != nil { this.module.Errorln(err) - msg = err.Error() - code = pb.ErrorCode_RpcFuncExecutionError + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_RpcFuncExecutionError, + Title: pb.ErrorCode_RpcFuncExecutionError.ToString(), + } } } else { errdata = &pb.ErrorData{ @@ -72,4 +70,8 @@ func (this *Api_Comp) Upload(c *engine.Context) { Title: pb.ErrorCode_ReqParameterError.ToString(), } } + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_Success, + Title: pb.ErrorCode_Success.ToString(), + } } From a690762889a775a185533f97c6dbca9ec35dd56c Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Tue, 6 Jun 2023 14:13:54 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/caravan/module.go | 2 +- modules/horoscope/api_rest.go | 5 +- modules/horoscope/api_upgrade.go | 5 +- modules/horoscope/modelhoroscope.go | 4 +- modules/modulebase.go | 68 ++- modules/oldtimes/api_receive.go | 10 +- pb/comm.pb.go | 412 +++++++------- pb/errorcode.pb.go | 837 ++++++++++++++-------------- 8 files changed, 675 insertions(+), 668 deletions(-) diff --git a/modules/caravan/module.go b/modules/caravan/module.go index 7c5b31b06..1e5904a05 100644 --- a/modules/caravan/module.go +++ b/modules/caravan/module.go @@ -295,7 +295,7 @@ func (this *Caravan) TaskComplete(session comm.IUserSession, taskid int32) { N: v.N, }) } - if code := this.ModuleBase.DispenseRes(session, conf.Reword, true); errdata != nil { + if errdata := this.ModuleBase.DispenseRes(session, conf.Reword, true); errdata != nil { this.Errorf("Caravan DispenseRes err:%v", conf.Reword) } session.SendMsg(string(this.GetType()), "taskcomplete", resp) diff --git a/modules/horoscope/api_rest.go b/modules/horoscope/api_rest.go index e0ae22880..d2ff658ce 100644 --- a/modules/horoscope/api_rest.go +++ b/modules/horoscope/api_rest.go @@ -35,7 +35,10 @@ func (this *apiComp) Reset(session comm.IUserSession, req *pb.HoroscopeResetReq) conf = this.module.ModuleTools.GetGlobalConf() if info.Lastrest > 0 { if configure.Now().Sub(time.Unix(info.Lastrest, 0)).Seconds() < float64(conf.HoroscopeResetCd) { - code = pb.ErrorCode_HoroscopeRestCDNoEnd + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HoroscopeRestCDNoEnd, + Title: pb.ErrorCode_HoroscopeRestCDNoEnd.ToString(), + } return } } diff --git a/modules/horoscope/api_upgrade.go b/modules/horoscope/api_upgrade.go index a98268e5e..abe72e739 100644 --- a/modules/horoscope/api_upgrade.go +++ b/modules/horoscope/api_upgrade.go @@ -51,7 +51,10 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.HoroscopeUpgrade return } if v, ok := info.Nodes[front.NodeId]; !ok || v < front.Lv { - code = pb.ErrorCode_HoroscopeNotTurnedOn + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_HoroscopeNotTurnedOn, + Title: pb.ErrorCode_HoroscopeNotTurnedOn.ToString(), + } return } } diff --git a/modules/horoscope/modelhoroscope.go b/modules/horoscope/modelhoroscope.go index 4945d6280..6d87e66d0 100644 --- a/modules/horoscope/modelhoroscope.go +++ b/modules/horoscope/modelhoroscope.go @@ -143,7 +143,7 @@ func (this *modelHoroscope) reddot(session comm.IUserSession) bool { var ( info *pb.DBHoroscope horoscope *cfg.GameHoroscope - code pb.ErrorCode + errdata *pb.ErrorData err error ) if info, err = this.queryInfo(session.GetUserId()); err != nil { @@ -155,7 +155,7 @@ func (this *modelHoroscope) reddot(session comm.IUserSession) bool { for _, v := range horoscope.GetDataList() { if lv, ok := info.Nodes[v.NodeId]; !ok && v.Lv > lv { - if errdata = this.module.CheckRes(session, v.CostItem); code == pb.ErrorCode_Success { + if errdata = this.module.CheckRes(session, v.CostItem); errdata == nil { return true } } diff --git a/modules/modulebase.go b/modules/modulebase.go index ef05b8428..3f987037b 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -328,6 +328,7 @@ func (this *ModuleBase) CheckRes(session comm.IUserSession, res []*cfg.Gameatn) errdata = &pb.ErrorData{ Code: pb.ErrorCode_ResNoEnough, Title: pb.ErrorCode_ResNoEnough.ToString(), + Atn: &pb.UserAssets{A: comm.AttrType, T: k, N: v}, Message: fmt.Sprintf("资源%v的数量:%v 小于 %v", k, amount, v), } // this.Warn("资源不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v}) @@ -340,6 +341,7 @@ func (this *ModuleBase) CheckRes(session comm.IUserSession, res []*cfg.Gameatn) errdata = &pb.ErrorData{ Code: pb.ErrorCode_ResNoEnough, Title: pb.ErrorCode_ResNoEnough.ToString(), + Atn: &pb.UserAssets{A: comm.ItemType, T: k, N: v}, Message: fmt.Sprintf("道具%v的数量:%v 小于 %v", k, amount, v), } // this.Warn("道具不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v}) @@ -372,22 +374,34 @@ func (this *ModuleBase) ConsumeRes(session comm.IUserSession, res []*cfg.Gameatn } // 校验数量 for k, v := range attrs { - if this.ModuleUser.QueryAttributeValue(session.GetUserId(), k) < -int64(v) { // -v 负负得正 - code = pb.ErrorCode_ResNoEnough + amount := this.ModuleUser.QueryAttributeValue(session.GetUserId(), k) + if amount < -int64(v) { // -v 负负得正 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ResNoEnough, + Title: pb.ErrorCode_ResNoEnough.ToString(), + Atn: &pb.UserAssets{A: comm.AttrType, T: k, N: v}, + Message: fmt.Sprintf("资源%v的数量:%v 小于 %v", k, amount, v), + } this.Warn("资源不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v}) return } } for k, v := range items { - if int32(this.ModuleItems.QueryItemAmount(session.GetUserId(), k)) < -v { - code = pb.ErrorCode_ResNoEnough + amount := this.ModuleItems.QueryItemAmount(session.GetUserId(), k) + if int32(amount) < -v { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ResNoEnough, + Title: pb.ErrorCode_ResNoEnough.ToString(), + Atn: &pb.UserAssets{A: comm.ItemType, T: k, N: v}, + Message: fmt.Sprintf("道具%v的数量:%v 小于 %v", k, amount, v), + } this.Warn("道具不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v}) return } } // 真正消耗 if len(attrs) > 0 { - code = this.ModuleUser.AddAttributeValues(session, attrs, bPush) + errdata = this.ModuleUser.AddAttributeValues(session, attrs, bPush) if errdata != nil { return } @@ -398,7 +412,7 @@ func (this *ModuleBase) ConsumeRes(session comm.IUserSession, res []*cfg.Gameatn } } if len(items) > 0 { - _, code = this.ModuleItems.AddItems(session, items, bPush) + _, errdata = this.ModuleItems.AddItems(session, items, bPush) if errdata != nil { return } @@ -459,44 +473,44 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat } if len(attrs) > 0 { //用户属性资源 - code = this.ModuleUser.AddAttributeValues(session, attrs, bPush) - this.Debugf("发放用户资源: %v code : [%v]", attrs, code) + errdata = this.ModuleUser.AddAttributeValues(session, attrs, bPush) + this.Debugf("发放用户资源: %v errdata: %v", attrs, errdata) } if len(items) > 0 { //道具资源 - _, code = this.ModuleItems.AddItems(session, items, bPush) - this.Debugf("发放道具资源: %v code : [%v]", items, code) + _, errdata = this.ModuleItems.AddItems(session, items, bPush) + this.Debugf("发放道具资源: %v errdata: %v", items, errdata) } if len(heros) > 0 { //卡片资源 - _, _, code = this.ModuleHero.CreateRepeatHeros(session, heros, bPush) - this.Debugf("发放英雄资源: %v code : [%v]", heros, code) + _, _, errdata = this.ModuleHero.CreateRepeatHeros(session, heros, bPush) + this.Debugf("发放英雄资源: %v errdata: %v", heros, errdata) } if len(equips) > 0 { - _, code = this.ModuleEquipment.AddNewEquipments(session, equips, bPush) - this.Debugf("发放装备资源: %v code : [%v]", equips, code) + _, errdata = this.ModuleEquipment.AddNewEquipments(session, equips, bPush) + this.Debugf("发放装备资源: %v errdata: %v", equips, errdata) } if len(vip) > 0 { //卡片资源 for k := range vip { - code, _ = this.ModulePrivilege.Delivery(session, k) - this.Debugf("发放月卡资源: %v code : [%v]", k, code) + errdata, _ = this.ModulePrivilege.Delivery(session, k) + this.Debugf("发放月卡资源: %v errdata: %v", k, errdata) } } if len(atlas) > 0 { for k := range atlas { this.ModuleSmithy.CheckActivateAtlasCollect(session.GetUserId(), k) - this.Debugf("发放图鉴资源: %v code : [%v]", k, code) + this.Debugf("发放图鉴资源: %v errdata: %v", k, errdata) } } if len(panda) > 0 { - code = this.ModulePractice.AddItems(session, panda, bPush) - this.Debugf("发放武馆资源: %v code : [%v]", panda, code) + errdata = this.ModulePractice.AddItems(session, panda, bPush) + this.Debugf("发放武馆资源: %v errdata: %v", panda, errdata) } if len(mts) > 0 { - code = this.ModuleParkour.AddMounts(session, mts, bPush) - this.Debugf("发放捕羊大赛资源: %v code : [%v]", mts, code) + errdata = this.ModuleParkour.AddMounts(session, mts, bPush) + this.Debugf("发放捕羊大赛资源: %v errdata: %v", mts, errdata) } if len(per) > 0 { - code = this.ModuleUser.AddPer(session, per, bPush) - this.Debugf("发放用户皮肤资源资源: %v code : [%v]", mts, code) + errdata = this.ModuleUser.AddPer(session, per, bPush) + this.Debugf("发放用户皮肤资源资源: %v errdata: %v", mts, errdata) } return } @@ -659,8 +673,8 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea } if len(attrs) > 0 { //用户属性资源 - code = this.ModuleUser.AddAttributeValues(session, attrs, bPush) - this.Debugf("发放用户资源: %v [%v]", attrs, code) + errdata = this.ModuleUser.AddAttributeValues(session, attrs, bPush) + this.Debugf("发放用户资源: %v [%v]", attrs, errdata) for k, v := range attrs { atno = append(atno, &pb.UserAtno{ A: "attr", @@ -701,8 +715,8 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea } if len(vip) > 0 { //卡片资源 for k := range vip { - code, _ = this.ModulePrivilege.Delivery(session, k) - this.Debugf("发放月卡资源: %v [%v]", k, code) + errdata, _ = this.ModulePrivilege.Delivery(session, k) + this.Debugf("发放月卡资源: %v [%v]", k, errdata) } } diff --git a/modules/oldtimes/api_receive.go b/modules/oldtimes/api_receive.go index ab3a1ea9a..5f325f622 100644 --- a/modules/oldtimes/api_receive.go +++ b/modules/oldtimes/api_receive.go @@ -27,10 +27,16 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.OldtimesReceiveR for _, v := range ot.Chapters { if v.Cid == req.ChapterId { if v.Received == 1 { - code = pb.ErrorCode_OldtimesReceived + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_OldtimesReceived, + Title: pb.ErrorCode_OldtimesReceived.ToString(), + } return } else if v.Status != int32(finish) { - code = pb.ErrorCode_OldtimesNoAllFinished + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_OldtimesNoAllFinished, + Title: pb.ErrorCode_OldtimesNoAllFinished.ToString(), + } return } else { v.Received = 1 diff --git a/pb/comm.pb.go b/pb/comm.pb.go index 77f64a3dc..7a9c1964b 100644 --- a/pb/comm.pb.go +++ b/pb/comm.pb.go @@ -82,11 +82,12 @@ type ErrorData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code ErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=ErrorCode" json:"code"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` - Dataint int32 `protobuf:"varint,3,opt,name=dataint,proto3" json:"dataint"` - Datastring string `protobuf:"bytes,4,opt,name=datastring,proto3" json:"datastring"` - Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message"` + Code ErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=ErrorCode" json:"code"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Dataint int32 `protobuf:"varint,3,opt,name=dataint,proto3" json:"dataint"` + Datastring string `protobuf:"bytes,4,opt,name=datastring,proto3" json:"datastring"` + Atn *UserAssets `protobuf:"bytes,5,opt,name=atn,proto3" json:"atn"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` } func (x *ErrorData) Reset() { @@ -149,6 +150,13 @@ func (x *ErrorData) GetDatastring() string { return "" } +func (x *ErrorData) GetAtn() *UserAssets { + if x != nil { + return x.Atn + } + return nil +} + func (x *ErrorData) GetMessage() string { if x != nil { return x.Message @@ -355,10 +363,8 @@ type RPCMessageReply struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code ErrorCode `protobuf:"varint,1,opt,name=Code,proto3,enum=ErrorCode" json:"Code"` - ErrorMessage string `protobuf:"bytes,2,opt,name=ErrorMessage,proto3" json:"ErrorMessage"` - ErrorData *ErrorData `protobuf:"bytes,3,opt,name=ErrorData,proto3" json:"ErrorData"` - Reply []*UserMessage `protobuf:"bytes,4,rep,name=Reply,proto3" json:"Reply"` + ErrorData *ErrorData `protobuf:"bytes,1,opt,name=ErrorData,proto3" json:"ErrorData"` + Reply []*UserMessage `protobuf:"bytes,2,rep,name=Reply,proto3" json:"Reply"` } func (x *RPCMessageReply) Reset() { @@ -393,20 +399,6 @@ func (*RPCMessageReply) Descriptor() ([]byte, []int) { return file_comm_proto_rawDescGZIP(), []int{3} } -func (x *RPCMessageReply) GetCode() ErrorCode { - if x != nil { - return x.Code - } - return ErrorCode_Success -} - -func (x *RPCMessageReply) GetErrorMessage() string { - if x != nil { - return x.ErrorMessage - } - return "" -} - func (x *RPCMessageReply) GetErrorData() *ErrorData { if x != nil { return x.ErrorData @@ -1946,7 +1938,7 @@ var file_comm_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, - 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x45, 0x72, 0x72, + 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, @@ -1954,97 +1946,23 @@ var file_comm_proto_rawDesc = []byte{ 0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0xb7, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x63, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0f, - 0x52, 0x50, 0x43, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x1e, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, - 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0f, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, - 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x22, 0x75, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x73, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x03, 0x61, 0x74, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x52, 0x03, 0x61, 0x74, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0xb7, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x63, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, @@ -2054,100 +1972,172 @@ var file_comm_proto_rawDesc = []byte{ 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, - 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x0f, 0x52, 0x50, + 0x43, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, 0x0a, + 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x0d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x55, + 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x5f, 0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x13, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, + 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, + 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, + 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, + 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, + 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, + 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, + 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, + 0x22, 0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x0c, + 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, + 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, - 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, - 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x01, 0x4e, 0x12, 0x0c, 0x0a, 0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x01, 0x4f, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, - 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x33, 0x22, 0x1a, 0x0a, 0x06, 0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, - 0x1d, 0x0a, 0x07, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, - 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x31, 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, - 0x52, 0x65, 0x71, 0x41, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x32, 0x22, 0x59, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, - 0x22, 0x71, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, - 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x34, 0x22, 0x51, 0x0a, 0x0b, 0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x42, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, - 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, - 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, - 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, - 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, - 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, - 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x12, 0x0c, + 0x0a, 0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x4f, 0x22, 0x39, 0x0a, 0x09, + 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x1a, 0x0a, + 0x06, 0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x22, 0x41, 0x0a, 0x0f, + 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x32, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x22, + 0x59, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, + 0x41, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x71, 0x0a, 0x0f, 0x52, 0x50, + 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x22, 0x51, 0x0a, + 0x0b, 0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x22, 0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x42, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x6f, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, + 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2199,9 +2189,9 @@ var file_comm_proto_goTypes = []interface{}{ } var file_comm_proto_depIdxs = []int32{ 29, // 0: ErrorData.code:type_name -> ErrorCode - 30, // 1: UserMessage.data:type_name -> google.protobuf.Any - 30, // 2: AgentMessage.Message:type_name -> google.protobuf.Any - 29, // 3: RPCMessageReply.Code:type_name -> ErrorCode + 15, // 1: ErrorData.atn:type_name -> UserAssets + 30, // 2: UserMessage.data:type_name -> google.protobuf.Any + 30, // 3: AgentMessage.Message:type_name -> google.protobuf.Any 1, // 4: RPCMessageReply.ErrorData:type_name -> ErrorData 2, // 5: RPCMessageReply.Reply:type_name -> UserMessage 2, // 6: AgentSendMessageReq.Reply:type_name -> UserMessage diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index ffede9b79..74c88d207 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -86,7 +86,6 @@ const ( ErrorCode_UserTalent4NoEnough ErrorCode = 1028 //阵营4天赋点 ErrorCode_UserMerchantNoEnough ErrorCode = 1029 //虚拟币不足 ErrorCode_UserLvNoEnough ErrorCode = 1030 //等级不足 - ErrorCode_UserStarCoinNoEnough ErrorCode = 1031 //星座币不足 // friend ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己 ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量 @@ -296,7 +295,6 @@ const ( ErrorCode_SociatyTaskNoFinished ErrorCode = 3041 //任务未完成 ErrorCode_SociatyTaskReceived ErrorCode = 3042 //任务奖励已领取 ErrorCode_SociatyApplyLvLimit ErrorCode = 3043 //超出最大申请等级限制 - ErrorCode_SociatyApplyCancel ErrorCode = 3044 //申请取消了 // arena ErrorCode_ArenaTicketBuyUp ErrorCode = 3101 //票据上限 ErrorCode_ArenaTicketNotEnough ErrorCode = 3102 //票据不足 @@ -461,7 +459,6 @@ var ( 1028: "UserTalent4NoEnough", 1029: "UserMerchantNoEnough", 1030: "UserLvNoEnough", - 1031: "UserStarCoinNoEnough", 1100: "FriendNotSelf", 1101: "FriendSelfMax", 1102: "FriendTargetMax", @@ -652,7 +649,6 @@ var ( 3041: "SociatyTaskNoFinished", 3042: "SociatyTaskReceived", 3043: "SociatyApplyLvLimit", - 3044: "SociatyApplyCancel", 3101: "ArenaTicketBuyUp", 3102: "ArenaTicketNotEnough", 3103: "ArenaTicketNpcInCd", @@ -798,7 +794,6 @@ var ( "UserTalent4NoEnough": 1028, "UserMerchantNoEnough": 1029, "UserLvNoEnough": 1030, - "UserStarCoinNoEnough": 1031, "FriendNotSelf": 1100, "FriendSelfMax": 1101, "FriendTargetMax": 1102, @@ -989,7 +984,6 @@ var ( "SociatyTaskNoFinished": 3041, "SociatyTaskReceived": 3042, "SociatyApplyLvLimit": 3043, - "SociatyApplyCancel": 3044, "ArenaTicketBuyUp": 3101, "ArenaTicketNotEnough": 3102, "ArenaTicketNpcInCd": 3103, @@ -1108,7 +1102,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0xb9, 0x3d, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0x85, 0x3d, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, @@ -1185,422 +1179,419 @@ var file_errorcode_proto_rawDesc = []byte{ 0x08, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x85, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x86, - 0x08, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x43, 0x6f, 0x69, - 0x6e, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x87, 0x08, 0x12, 0x12, 0x0a, 0x0d, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, - 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, - 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, - 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, - 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, - 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, - 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, - 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, - 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, - 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, - 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0xdd, - 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x10, 0xde, 0x08, 0x12, 0x1a, 0x0a, - 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x4e, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xdf, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xe0, 0x08, 0x12, - 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6b, 0x10, 0xe1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, - 0x67, 0x68, 0x10, 0xe2, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, - 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x10, 0xb3, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, - 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, - 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, - 0x65, 0x6c, 0x6c, 0x10, 0xb5, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, - 0x75, 0x79, 0x50, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xb6, - 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, - 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, - 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, - 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, - 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a, - 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10, - 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, - 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, - 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a, - 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, - 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, - 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, - 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, - 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f, - 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, - 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, - 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, - 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, - 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, - 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, - 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, - 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, - 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, - 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, - 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12, - 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, - 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65, - 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, - 0xac, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, - 0x6f, 0x75, 0x67, 0x68, 0x10, 0xad, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x49, - 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xae, 0x0a, 0x12, 0x1e, 0x0a, 0x19, - 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, - 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, - 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, - 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, - 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x45, 0x71, 0x75, - 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0xfc, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, - 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, - 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, - 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, - 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, - 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, 0x61, 0x72, 0x10, 0xe2, 0x0b, 0x12, 0x0d, - 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, - 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, - 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, - 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, - 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, - 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, - 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, - 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, - 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, - 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, - 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, - 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, - 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, - 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, - 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, - 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, - 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, - 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, - 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x61, 0x67, 0x6f, 0x64, - 0x61, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xf0, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, - 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, - 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, - 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, - 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, - 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, - 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd4, 0x0f, - 0x12, 0x1d, 0x0a, 0x18, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x41, - 0x74, 0x6c, 0x61, 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xd5, 0x0f, 0x12, - 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, - 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, - 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, - 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, - 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, - 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, - 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, - 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, - 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, - 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, - 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, - 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, - 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, - 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, - 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, - 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, - 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, - 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, - 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, - 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, - 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, - 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, - 0xe5, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, - 0x79, 0x4e, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0xe6, 0x12, 0x12, 0x20, 0x0a, 0x1b, 0x4d, 0x6f, - 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, - 0x67, 0x68, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x10, 0xe7, 0x12, 0x12, 0x18, 0x0a, 0x13, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, - 0xa9, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4e, - 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, - 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1b, 0x0a, 0x16, - 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x4e, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xac, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x10, 0xad, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, - 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75, 0x6e, - 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x8e, 0x15, 0x12, - 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e, 0x74, - 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x69, - 0x6e, 0x67, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x10, 0x91, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, - 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x97, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x68, - 0x61, 0x6e, 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x98, 0x15, 0x12, 0x17, - 0x0a, 0x12, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x99, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x45, 0x6e, 0x63, 0x68, 0x61, - 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x10, 0x9a, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, - 0x74, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x10, 0x9b, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4d, - 0x61, 0x78, 0x4c, 0x76, 0x10, 0xf1, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xf2, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x4c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0xf3, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x10, 0xf4, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf5, 0x15, 0x12, 0x1d, 0x0a, - 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xf6, 0x15, 0x12, 0x1d, 0x0a, 0x18, - 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xf7, 0x15, 0x12, 0x18, 0x0a, 0x13, 0x4c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x10, 0xf8, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, - 0xd5, 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, - 0x6e, 0x10, 0xd6, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd7, 0x16, 0x12, 0x16, 0x0a, - 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x10, 0xd8, 0x16, 0x12, 0x12, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x10, 0xd9, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x43, 0x61, 0x70, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xda, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x4b, 0x65, 0x65, 0x70, 0x10, 0xdb, 0x16, 0x12, 0x13, 0x0a, 0x0e, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xb8, - 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xba, - 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0xbc, 0x17, 0x12, 0x13, 0x0a, 0x0e, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xbd, - 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, - 0x69, 0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 0x10, 0xc0, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x10, 0xc1, 0x17, 0x12, - 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x10, 0xc2, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x44, 0x69, 0x73, 0x73, 0x10, 0xc3, 0x17, - 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xc4, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xc5, 0x17, 0x12, 0x14, 0x0a, - 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x75, 0x73, 0x65, - 0x10, 0xc6, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, - 0x67, 0x6e, 0x10, 0xc7, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xc8, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc9, 0x17, 0x12, 0x14, - 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, - 0x78, 0x10, 0xca, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, - 0x65, 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xcb, 0x17, 0x12, 0x1c, 0x0a, - 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xcc, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0xcd, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, - 0xce, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xcf, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x6f, 0x10, 0xd1, 0x17, 0x12, 0x13, - 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x10, 0xd2, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, - 0x70, 0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd3, 0x17, 0x12, - 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd4, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd5, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, 0x74, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x10, 0xd6, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0xd7, 0x17, 0x12, 0x15, 0x0a, - 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x10, 0xd8, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, - 0x75, 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0xd9, 0x17, 0x12, - 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x10, 0xda, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x4e, 0x6f, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x17, 0x12, 0x1b, - 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xdc, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4e, 0x6f, 0x69, 0x6e, - 0x69, 0x74, 0x10, 0xdd, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x64, 0x10, 0xde, 0x17, 0x12, 0x16, 0x0a, 0x11, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, - 0x6b, 0x10, 0xdf, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, - 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe0, 0x17, 0x12, 0x1a, 0x0a, - 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xe1, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0xe2, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x4c, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe3, 0x17, 0x12, 0x17, 0x0a, - 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x10, 0xe4, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, 0x10, 0x9d, 0x18, 0x12, 0x19, 0x0a, - 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, - 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x72, 0x65, 0x6e, - 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, 0x49, 0x6e, 0x43, 0x64, 0x10, 0x9f, - 0x18, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x61, 0x6c, - 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0x82, 0x19, 0x12, 0x19, 0x0a, - 0x14, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x84, 0x19, 0x12, - 0x10, 0x0a, 0x0b, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xe5, - 0x19, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4d, 0x61, - 0x78, 0x10, 0xe6, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, - 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe7, 0x19, 0x12, 0x16, 0x0a, 0x11, - 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x10, 0xe8, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x70, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x19, 0x12, 0x0e, - 0x0a, 0x09, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x43, 0x69, 0x74, 0x79, 0x10, 0xea, 0x19, 0x12, 0x0e, - 0x0a, 0x09, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xeb, 0x19, 0x12, 0x16, - 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, - 0x75, 0x67, 0x68, 0x10, 0xec, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x43, - 0x69, 0x74, 0x79, 0x55, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xed, 0x19, - 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x43, 0x69, 0x74, 0x79, 0x55, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x10, 0xee, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, - 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, - 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x43, 0x44, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, - 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xad, 0x1b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, - 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56, 0x69, 0x70, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x47, 0x69, 0x66, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x42, 0x75, 0x79, 0x52, - 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, 0xb1, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, - 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, - 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, - 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, - 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, - 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, - 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, - 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, - 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, - 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, - 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, - 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, - 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1b, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, - 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4e, 0x6f, 0x73, 0x61, 0x6d, 0x65, - 0x10, 0xdf, 0x1d, 0x12, 0x1f, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, - 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x10, 0xe0, 0x1d, 0x12, 0x1d, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, - 0x6b, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0xe1, 0x1d, 0x12, 0x17, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, - 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x10, 0xe2, 0x1d, 0x12, 0x1a, 0x0a, 0x15, - 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0xe3, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, - 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, - 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x65, 0x6c, 0x10, 0x85, 0x20, 0x12, 0x18, 0x0a, 0x13, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x10, 0x86, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x53, 0x74, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x87, 0x20, 0x12, 0x18, 0x0a, - 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x10, 0x88, 0x20, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x70, 0x4e, 0x6f, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x89, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x4d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x10, 0x8a, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x61, - 0x63, 0x6b, 0x4c, 0x61, 0x76, 0x61, 0x10, 0x8b, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x8c, 0x20, - 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4c, - 0x61, 0x63, 0x6b, 0x4c, 0x76, 0x10, 0x8d, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x10, 0x8e, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x8f, 0x20, 0x12, 0x17, 0x0a, 0x12, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x74, 0x6c, - 0x61, 0x73, 0x10, 0x90, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, - 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x10, 0x91, - 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, - 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x50, 0x72, 0x65, 0x10, - 0x93, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0x94, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x10, 0xe9, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x46, 0x72, 0x65, 0x65, 0x10, 0xea, 0x20, 0x12, 0x1b, 0x0a, 0x16, - 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xeb, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x10, 0xec, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xed, 0x20, 0x12, 0x17, - 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x4d, 0x61, 0x78, 0x10, 0xee, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xef, 0x20, - 0x12, 0x19, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, - 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf0, 0x20, 0x12, 0x16, 0x0a, 0x11, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, - 0x10, 0xcd, 0x21, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x53, - 0x65, 0x6e, 0x74, 0x10, 0xce, 0x21, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x10, - 0xcf, 0x21, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, - 0x6c, 0x6c, 0x61, 0x72, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xd0, 0x21, 0x12, 0x19, 0x0a, 0x14, - 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x59, 0x6f, 0x75, 0x51, 0x69, 0x65, 0x63, 0x75, - 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xd1, 0x21, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x63, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, - 0x6e, 0x67, 0x10, 0xd2, 0x21, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0xb1, 0x22, 0x12, 0x19, 0x0a, - 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4f, 0x76, - 0x65, 0x72, 0x64, 0x75, 0x65, 0x10, 0xb2, 0x22, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x6b, - 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xb3, 0x22, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x61, 0x72, - 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x65, 0x64, - 0x10, 0xb4, 0x22, 0x12, 0x19, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x95, 0x23, 0x12, 0x1a, - 0x0a, 0x15, 0x52, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x76, 0x10, 0x96, 0x23, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x6c, - 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xf9, - 0x23, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xfa, 0x23, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x6c, 0x64, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x10, 0xfb, 0x23, - 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x50, 0x72, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xfc, - 0x23, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x4e, 0x6f, 0x41, - 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xfd, 0x23, 0x42, 0x06, 0x5a, - 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x53, 0x65, + 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, + 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x10, 0xce, 0x08, 0x12, + 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x6f, 0x44, + 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd0, 0x08, 0x12, + 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, 0x10, 0xd1, 0x08, 0x12, + 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x59, 0x65, + 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, + 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, 0x08, 0x12, 0x19, 0x0a, + 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd5, 0x08, 0x12, + 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4d, 0x61, + 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd7, 0x08, + 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x65, 0x64, 0x10, + 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xda, 0x08, 0x12, 0x15, + 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, + 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, 0x12, 0x18, 0x0a, 0x13, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x10, 0xdd, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x10, + 0xde, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, + 0x75, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xdf, 0x08, 0x12, 0x14, + 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, + 0x67, 0x10, 0xe0, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, + 0x65, 0x63, 0x75, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6b, 0x10, 0xe1, 0x08, 0x12, + 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, + 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xe2, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, + 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, + 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, + 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, + 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, + 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x42, 0x75, 0x79, 0x50, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x10, 0xb6, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, + 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, + 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, + 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, + 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, + 0x98, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, + 0x70, 0x45, 0x72, 0x72, 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, + 0x61, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, + 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, + 0x9b, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, + 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, + 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, + 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x10, 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, + 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, + 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, + 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, + 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, + 0x72, 0x10, 0xa3, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, + 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, + 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, + 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, + 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, + 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, + 0x72, 0x72, 0x10, 0xa8, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, + 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, + 0x77, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0xaa, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, + 0x6f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x10, 0xac, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4c, + 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xad, 0x0a, 0x12, 0x13, 0x0a, 0x0e, + 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xae, + 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8, + 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x12, + 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57, 0x6f, + 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12, 0x1b, + 0x0a, 0x16, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xfc, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x4d, + 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd, 0x0b, 0x12, + 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xdf, 0x0b, + 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x4d, + 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x10, 0xe2, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, + 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, + 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, + 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, + 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, + 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, + 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, + 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, + 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, + 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, + 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, + 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, + 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, + 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, + 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, + 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x11, 0x0a, 0x0c, + 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xf0, 0x0e, 0x12, + 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, + 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, + 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, + 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, + 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0xd4, 0x0f, 0x12, 0x1d, 0x0a, 0x18, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xd5, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, + 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, + 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, + 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, + 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, + 0x11, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, + 0x6b, 0x10, 0x9b, 0x11, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, + 0x6b, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, + 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, + 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, + 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, + 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, + 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, + 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, + 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, + 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, + 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, + 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, + 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, + 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xe5, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, + 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0xe6, 0x12, 0x12, + 0x20, 0x0a, 0x1b, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, + 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x10, 0xe7, + 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, + 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xaa, 0x14, + 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, + 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, + 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xac, 0x14, 0x12, 0x1b, + 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x4e, 0x6f, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xad, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, + 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, + 0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, + 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, + 0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, + 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x91, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x97, 0x15, 0x12, 0x14, 0x0a, + 0x0f, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x98, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x75, + 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x99, 0x15, 0x12, 0x1d, 0x0a, 0x18, + 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9a, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x45, + 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9b, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x4c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xf1, 0x15, 0x12, 0x12, 0x0a, 0x0d, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xf2, 0x15, + 0x12, 0x16, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf3, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf4, 0x15, 0x12, 0x14, 0x0a, 0x0f, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, + 0xf5, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, + 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xf6, + 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xf7, 0x15, + 0x12, 0x18, 0x0a, 0x13, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x69, 0x76, 0x65, 0x4d, + 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xf8, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xd6, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, + 0xd7, 0x16, 0x12, 0x16, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, + 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd8, 0x16, 0x12, 0x12, 0x0a, 0x0d, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x10, 0xd9, 0x16, 0x12, 0x1e, + 0x0a, 0x19, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x70, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xda, 0x16, 0x12, 0x11, + 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x4b, 0x65, 0x65, 0x70, 0x10, 0xdb, + 0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, + 0x75, 0x67, 0x68, 0x10, 0xba, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, 0x12, 0x13, 0x0a, 0x0e, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0xbc, + 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x10, 0xbd, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, 0x17, 0x12, 0x11, 0x0a, + 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 0x10, 0xc0, 0x17, + 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x66, 0x75, 0x73, + 0x65, 0x10, 0xc1, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, + 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0xc2, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x44, 0x69, + 0x73, 0x73, 0x10, 0xc3, 0x17, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xc4, 0x17, 0x12, 0x13, 0x0a, + 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0xc5, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, + 0x63, 0x63, 0x75, 0x73, 0x65, 0x10, 0xc6, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xc7, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xc8, 0x17, 0x12, 0x13, + 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x10, 0xc9, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xca, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0xcb, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xcc, 0x17, + 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xcd, 0x17, 0x12, 0x19, 0x0a, 0x14, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x10, 0xce, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xcf, 0x17, 0x12, 0x14, 0x0a, + 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x6f, + 0x10, 0xd1, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x10, 0xd2, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, + 0x68, 0x10, 0xd3, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, + 0x61, 0x73, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd4, 0x17, + 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd5, 0x17, 0x12, 0x1b, + 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, 0x74, 0x76, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xd6, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, + 0xd7, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xd8, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x10, 0xd9, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, + 0x6f, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0xda, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0xdb, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xdc, 0x17, + 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x4e, 0x6f, 0x69, 0x6e, 0x69, 0x74, 0x10, 0xdd, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x64, 0x10, 0xde, + 0x17, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x65, 0x61, 0x6d, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xdf, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0xe0, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, + 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xe1, 0x17, 0x12, 0x18, + 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xe2, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, + 0xe3, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, 0x10, 0x9d, 0x18, 0x12, 0x19, 0x0a, 0x14, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, + 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, 0x49, 0x6e, 0x43, 0x64, 0x10, 0x9f, 0x18, 0x12, 0x16, 0x0a, + 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, + 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0x82, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x84, 0x19, 0x12, 0x10, 0x0a, 0x0b, 0x54, + 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xe5, 0x19, 0x12, 0x11, 0x0a, + 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x10, 0xe6, 0x19, + 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x6c, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe7, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, + 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe8, 0x19, + 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x19, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x72, + 0x6f, 0x6c, 0x6c, 0x43, 0x69, 0x74, 0x79, 0x10, 0xea, 0x19, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x72, + 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xeb, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, + 0x6f, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, + 0xec, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x43, 0x69, 0x74, 0x79, 0x55, + 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x10, 0xed, 0x19, 0x12, 0x18, 0x0a, 0x13, + 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x43, 0x69, 0x74, 0x79, 0x55, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x10, 0xee, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x10, 0xc9, + 0x1a, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, + 0x73, 0x74, 0x43, 0x44, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0xad, 0x1b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, 0x1b, 0x12, 0x0f, 0x0a, + 0x0a, 0x56, 0x69, 0x70, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaf, 0x1b, 0x12, 0x11, + 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x47, 0x69, 0x66, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xb0, + 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x10, 0xb1, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x72, + 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x10, 0x92, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, + 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, + 0x50, 0x61, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, + 0xf6, 0x1c, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, + 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, + 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, + 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, + 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, + 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, + 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, + 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, + 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, + 0xde, 0x1d, 0x12, 0x1b, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4e, 0x6f, 0x73, 0x61, 0x6d, 0x65, 0x10, 0xdf, 0x1d, 0x12, + 0x1f, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xe0, 0x1d, + 0x12, 0x1d, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xe1, 0x1d, 0x12, + 0x17, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x10, 0xe2, 0x1d, 0x12, 0x1a, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6c, + 0x64, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x10, 0xe3, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x54, + 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, + 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, + 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, + 0x6f, 0x52, 0x65, 0x65, 0x6c, 0x10, 0x85, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x79, 0x4e, 0x6f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, + 0x86, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, + 0x65, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x87, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, + 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x10, 0x88, 0x20, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x70, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x10, 0x89, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4d, + 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x8a, 0x20, + 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x61, 0x63, 0x6b, 0x4c, 0x61, + 0x76, 0x61, 0x10, 0x8b, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, + 0x74, 0x6c, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x8c, 0x20, 0x12, 0x16, 0x0a, 0x11, + 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4c, 0x61, 0x63, 0x6b, 0x4c, + 0x76, 0x10, 0x8d, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x8e, 0x20, 0x12, + 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x8f, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x10, 0x90, + 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x10, 0x91, 0x20, 0x12, 0x18, 0x0a, + 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, + 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x12, 0x17, + 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x45, 0x72, 0x72, 0x10, 0x94, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x10, 0xe9, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x46, 0x72, 0x65, 0x65, 0x10, 0xea, 0x20, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x10, 0xeb, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xec, 0x20, + 0x12, 0x18, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xed, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4d, 0x61, 0x78, + 0x10, 0xee, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xef, 0x20, 0x12, 0x19, 0x0a, 0x14, + 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, + 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf0, 0x20, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xcd, 0x21, 0x12, + 0x11, 0x0a, 0x0c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x10, + 0xce, 0x21, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x10, 0xcf, 0x21, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, + 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xd0, 0x21, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x63, 0x65, 0x59, 0x6f, 0x75, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, + 0x10, 0xd1, 0x21, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xd2, + 0x21, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0xb1, 0x22, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x64, 0x75, + 0x65, 0x10, 0xb2, 0x22, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x10, 0xb3, 0x22, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x65, 0x64, 0x10, 0xb4, 0x22, 0x12, + 0x19, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x95, 0x23, 0x12, 0x1a, 0x0a, 0x15, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x76, 0x10, 0x96, 0x23, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xf9, 0x23, 0x12, 0x15, 0x0a, + 0x10, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x10, 0xfa, 0x23, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x10, 0xfb, 0x23, 0x12, 0x1f, 0x0a, 0x1a, + 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x50, 0x72, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xfc, 0x23, 0x12, 0x1a, 0x0a, + 0x15, 0x4f, 0x6c, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xfd, 0x23, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var (