diff --git a/common/constant.go b/common/constant.go index ec91584..5cfc959 100644 --- a/common/constant.go +++ b/common/constant.go @@ -272,6 +272,10 @@ const ( GainWayBuyItem = 86 // 商城购买道具 GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 + GainWaySign7Con = 89 // 累计签到进阶奖励消耗 + GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 + GainWaySign7Add = 91 // 累计签到进阶奖励获得 + GainWayItemChange = 92 //背包内使用道具兑换话费 ) // 后台选择 金币变化类型 的充值 类型id号起始 @@ -602,6 +606,8 @@ const ( ItemTypeShopScore = 11 //积分 ItemTypeInteract = 12 // 互动表情 ItemTypeExpireTime = 15 // 时效类道具 + ItemTypeObjective = 16 // 目标类道具 + ItemTypeChange = 17 // 兑换话费 ) func GetKeyNoviceGameId(gameId int) string { @@ -660,15 +666,16 @@ const ( TaskTypePay = 7 // 充值金额 TaskTypeWinOrLose = 8 // 游戏输赢金币数量 TaskTypeTienlenCount = 9 // tienlen游戏场次 - TaskTypeBindInviter = 10 // 绑定邀请人数量 + TaskTypeBindInviter = 10 // 绑定邀请人数量* TaskTypeWinCoin = 11 // 赢取金币数量 TaskTypeTienlenWinTimes = 12 // tienlen游戏赢取次数 - TaskTypeInviteScore = 13 // 邀请积分 + TaskTypeInviteScore = 13 // 邀请积分* TaskTypeActivityScore = 14 // 周活跃积分数量 TaskTypeFirstLogin = 15 // 每日首次登录 - TaskTypeInviteNum = 16 // 邀请绑定数量 + TaskTypeInviteNum = 16 // 邀请绑定数量* TaskTypeTurnplate = 17 // 转盘抽奖次数 - TaskTypeInviteRecharge = 18 // 被邀请人充值金额 + TaskTypeInviteRecharge = 18 // 被邀请人充值金额* + TaskTypeLoseCoin = 19 // 输的金币数量 ) const ( @@ -689,17 +696,13 @@ const ( const HeadRange = 3 // 机器人头像id范围 const ( - InviteScoreTypeBind = 1 // 绑定邀请码 - InviteScoreTypeLogin = 2 // 每日登录 - InviteScoreTypePlayTimes = 3 // 每日参与任意游戏 - InviteScoreTypeRecharge = 4 // 充值 - InviteScoreTypeGameTimes = 5 // 每局游戏 + InviteScoreCheckWeek = -1 // 跨周 + InviteScoreTypeBind = 1 // 绑定邀请码 + InviteScoreTypePay = 2 // 充值 + InviteScoreTypeRecharge = 3 // 充值完成 + InviteScoreTypePayMe = 4 // 充值(给自己) ) -const TaskIDInvitePlayGame = 1000001 -const TaskIDInviteRecharge = 1000002 -const TaskIDInviteFirstLogin = 1000003 - func InMatchChannel(ls []string, n string) bool { if n == "" || len(ls) == 0 { return false @@ -749,10 +752,6 @@ const ( var PetIDs = []int32{PetIDChicken} -const ( - InviteScoreRecharge = 10000 // 用户每充值$1邀请人获得积分 -) - const ( ChannelSwitchExchange = 1 ChannelSwitchDropItem = 2 diff --git a/common/time.go b/common/time.go index d6156c0..2afb753 100644 --- a/common/time.go +++ b/common/time.go @@ -76,17 +76,15 @@ func InSameWeek(tNow, tPre time.Time) bool { return true } - preYear, preWeek := tPre.ISOWeek() - nowYear, nowWeek := tNow.ISOWeek() - if preYear == nowYear && preWeek == nowWeek { + if GetWeekStartTs(tNow.Unix()) == GetWeekStartTs(tPre.Unix()) { return true } return false } func TsInSameWeek(tsNow, tsPre int64) bool { - tNow := time.Unix(tsNow, 0) - tPre := time.Unix(tsPre, 0) + tNow := time.Unix(tsNow, 0).Local() + tPre := time.Unix(tsPre, 0).Local() return InSameWeek(tNow, tPre) } @@ -143,3 +141,33 @@ func InTimeRange(beginHour, beginMinute, endHour, endMinute, checkHour, checkMin checkTime := checkHour*100 + checkMinute return beginTime <= checkTime && checkTime <= endTime } + +// GetWeekStartTs 获取本周开始的时间戳,周一为周的开始 +func GetWeekStartTs(ts int64) int64 { + now := time.Unix(ts, 0).Local() + year, month, day := now.Date() + today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) + n := today.Weekday() + if today.Weekday() == 0 { + n = 7 + } + st := today.AddDate(0, 0, -int(n-1)).Unix() + return st +} + +func GetMonthTimestamp() []int64 { + now := time.Now().Local() + year, month, _ := now.Date() + // 本月起始日期 + st := time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() + // 计算下个月的年和月 + if month == time.December { + year = year + 1 + month = time.January + } else { + month = month + 1 + } + // 构建下个月的第一天的时间 + et := time.Date(year, month, 1, 0, 0, 0, 0, now.Location()).Unix() + return []int64{st, et} +} diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 28afb8c..08348af 100644 Binary files a/data/DB_GameItem.dat and b/data/DB_GameItem.dat differ diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index d142ae9..619475e 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -16,12 +16,14 @@ "Effect0": [ 1, 0, - 1 + 1, + 0 ], "Effect": [ 1, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -46,12 +48,14 @@ "Effect0": [ 1, 0, - 1 + 1, + 0 ], "Effect": [ 1, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 50000, @@ -76,12 +80,14 @@ "Effect0": [ 1, 0, - 1 + 1, + 0 ], "Effect": [ 1, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -106,12 +112,14 @@ "Effect0": [ 1, 0, - 1 + 1, + 0 ], "Effect": [ 1, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 250000, @@ -136,12 +144,14 @@ "Effect0": [ 1, 0, - 1 + 1, + 0 ], "Effect": [ 1, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -166,12 +176,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -194,11 +206,13 @@ ], "Type": 9, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -223,11 +237,13 @@ ], "Type": 9, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -252,11 +268,13 @@ ], "Type": 9, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -281,11 +299,13 @@ ], "Type": 9, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -310,11 +330,13 @@ ], "Type": 4, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -338,11 +360,13 @@ ], "Type": 4, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -369,11 +393,13 @@ "Effect0": [ 1, 0, + 0, 0 ], "Effect": [ 1, 0, + 0, 0 ], "Composition": 1, @@ -397,11 +423,13 @@ "Effect0": [ 1, 0, + 0, 0 ], "Effect": [ 1, 0, + 0, 0 ], "Composition": 1, @@ -425,12 +453,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -455,12 +485,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -485,12 +517,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -515,12 +549,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -545,12 +581,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -575,12 +613,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -605,12 +645,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -635,12 +677,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -665,12 +709,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -695,12 +741,14 @@ "Effect0": [ 0, 0, - 1 + 1, + 0 ], "Effect": [ 0, 0, - 1 + 1, + 0 ], "SaleType": 1, "SaleGold": 5000, @@ -723,11 +771,13 @@ ], "Type": 15, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -751,11 +801,13 @@ ], "Type": 15, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -779,11 +831,13 @@ ], "Type": 15, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -807,11 +861,13 @@ ], "Type": 15, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -835,11 +891,13 @@ ], "Type": 5, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -862,11 +920,13 @@ ], "Type": 6, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -889,11 +949,13 @@ ], "Type": 8, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -916,11 +978,13 @@ ], "Type": 4, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -943,11 +1007,13 @@ ], "Type": 10, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -970,11 +1036,13 @@ ], "Type": 11, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -997,11 +1065,13 @@ ], "Type": 12, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1025,11 +1095,13 @@ ], "Type": 12, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1053,11 +1125,13 @@ ], "Type": 12, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1081,11 +1155,13 @@ ], "Type": 12, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1109,11 +1185,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1136,11 +1214,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1163,11 +1243,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1190,11 +1272,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1217,11 +1301,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1244,11 +1330,13 @@ ], "Type": 7, "Effect0": [ + 0, 0, 0, 0 ], "Effect": [ + 0, 0, 0, 0 @@ -1273,11 +1361,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1302,11 +1392,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1331,11 +1423,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1360,11 +1454,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1389,11 +1485,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1418,11 +1516,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1447,11 +1547,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1476,11 +1578,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1505,11 +1609,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1534,11 +1640,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1563,11 +1671,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1592,11 +1702,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1621,11 +1733,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1650,11 +1764,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1679,11 +1795,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1708,11 +1826,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1737,11 +1857,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1766,11 +1888,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1795,11 +1919,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1824,11 +1950,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1853,11 +1981,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1882,11 +2012,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1911,11 +2043,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1940,11 +2074,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1969,11 +2105,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -1998,11 +2136,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2027,11 +2167,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2056,11 +2198,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2085,11 +2229,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2114,11 +2260,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2143,11 +2291,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2172,11 +2322,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2201,11 +2353,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2230,11 +2384,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2259,11 +2415,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2288,11 +2446,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2317,11 +2477,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2346,11 +2508,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2375,11 +2539,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2404,11 +2570,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2433,11 +2601,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2462,11 +2632,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2491,11 +2663,13 @@ "Effect0": [ 0, 1, + 0, 0 ], "Effect": [ 0, 1, + 0, 0 ], "Composition": 1, @@ -2503,6 +2677,126 @@ "Location": "0", "Describe": "可联系客服兑换实物奖励", "Entity": 9 + }, + { + "Id": 30008, + "Name": "1元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0, + 1 + ], + "Effect": [ + 1, + 0, + 0, + 1 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 1 + }, + { + "Id": 30009, + "Name": "2元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0, + 1 + ], + "Effect": [ + 1, + 0, + 0, + 1 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 2 + }, + { + "Id": 30010, + "Name": "5元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0, + 1 + ], + "Effect": [ + 1, + 0, + 0, + 1 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 5 + }, + { + "Id": 30011, + "Name": "10元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0, + 1 + ], + "Effect": [ + 1, + 0, + 0, + 1 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 10 } ] } \ No newline at end of file diff --git a/data/DB_Game_Drop.dat b/data/DB_Game_Drop.dat index 8fb0166..d510ec8 100644 --- a/data/DB_Game_Drop.dat +++ b/data/DB_Game_Drop.dat @@ -1,56 +1,55 @@ - (2 -' (J2 -N (2 -u (2 - (2 - (2 - (2 - (2 -  (2 + (2 +' (12 +N (c2 +u (2 + (2 + (2 + (2 + (2 +  (2  - (2 - І (2 - ح (2 -  (2 - (2 - (2 - (2 - ( 2 - ( 2 - ( -2 - ( 2 - ( 2 - (2 - (2 - (2 - ("2 - ((2 - (.2 -л (42 - (:2 -! (?2 -$ (E2 - ' (K2 -!* (N2 -"- (N2 -#0 (N2 -$3 (N2 -%6 (N2 -&9 (N2 -'= (N2 -(z (N2 -) (N2 -* (N2  -+Ó (N2 -, (N2 -- (N2#' -. (N2+/ -/ (N226 -0 (N29= -1ʺ (N2AE -2 (N2HL -3/ (N2 -4G (N2 -5_ (N2 \ No newline at end of file + (2 + І (2 + ح (2 +  (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + ( 2 + (2 + (2 + (2 + (2 + (2 +л ("2 + (&2 +! (*2 +$ (.2 + ' (22 +!* (32 +"- (52 +#0 (62 +$3 (82 +%6 (:2 +&9 (;2 +'= (=2 +(z (>2 +) (@2 +* (N2 ++Ó (N2 +, (N2 +- (N2 +. (N2$ +/ (N2$* +0 (N2)0 +1ʺ (N2.6 +2 (N23< +3/ (N2e{ +4G (N2 +5_ (N2 \ No newline at end of file diff --git a/data/DB_Game_Drop.json b/data/DB_Game_Drop.json index c1f90b4..121160a 100644 --- a/data/DB_Game_Drop.json +++ b/data/DB_Game_Drop.json @@ -4,7 +4,7 @@ "Id": 1, "Bet": 2000, "ItemId1": 30001, - "Rate1": 30, + "Rate1": 20, "Amount1": [ 1, 1 @@ -14,7 +14,7 @@ "Id": 2, "Bet": 5000, "ItemId1": 30001, - "Rate1": 74, + "Rate1": 49, "Amount1": [ 1, 1 @@ -24,7 +24,7 @@ "Id": 3, "Bet": 10000, "ItemId1": 30001, - "Rate1": 149, + "Rate1": 99, "Amount1": [ 1, 1 @@ -34,7 +34,7 @@ "Id": 4, "Bet": 15000, "ItemId1": 30001, - "Rate1": 223, + "Rate1": 149, "Amount1": [ 1, 1 @@ -44,7 +44,7 @@ "Id": 5, "Bet": 20000, "ItemId1": 30001, - "Rate1": 297, + "Rate1": 198, "Amount1": [ 1, 1 @@ -54,7 +54,7 @@ "Id": 6, "Bet": 25000, "ItemId1": 30001, - "Rate1": 371, + "Rate1": 247, "Amount1": [ 1, 1 @@ -64,7 +64,7 @@ "Id": 7, "Bet": 30000, "ItemId1": 30001, - "Rate1": 446, + "Rate1": 297, "Amount1": [ 1, 1 @@ -74,7 +74,7 @@ "Id": 8, "Bet": 35000, "ItemId1": 30001, - "Rate1": 520, + "Rate1": 347, "Amount1": [ 1, 1 @@ -84,7 +84,7 @@ "Id": 9, "Bet": 40000, "ItemId1": 30001, - "Rate1": 594, + "Rate1": 396, "Amount1": [ 1, 1 @@ -94,7 +94,7 @@ "Id": 10, "Bet": 45000, "ItemId1": 30001, - "Rate1": 668, + "Rate1": 445, "Amount1": [ 1, 1 @@ -104,7 +104,7 @@ "Id": 11, "Bet": 50000, "ItemId1": 30001, - "Rate1": 743, + "Rate1": 495, "Amount1": [ 1, 1 @@ -114,7 +114,7 @@ "Id": 12, "Bet": 55000, "ItemId1": 30001, - "Rate1": 817, + "Rate1": 545, "Amount1": [ 1, 1 @@ -124,7 +124,7 @@ "Id": 13, "Bet": 60000, "ItemId1": 30001, - "Rate1": 891, + "Rate1": 594, "Amount1": [ 1, 1 @@ -134,7 +134,7 @@ "Id": 14, "Bet": 65000, "ItemId1": 30001, - "Rate1": 965, + "Rate1": 643, "Amount1": [ 1, 1 @@ -144,7 +144,7 @@ "Id": 15, "Bet": 70000, "ItemId1": 30001, - "Rate1": 1040, + "Rate1": 693, "Amount1": [ 1, 1 @@ -154,7 +154,7 @@ "Id": 16, "Bet": 75000, "ItemId1": 30001, - "Rate1": 1114, + "Rate1": 743, "Amount1": [ 1, 1 @@ -164,7 +164,7 @@ "Id": 17, "Bet": 80000, "ItemId1": 30001, - "Rate1": 1188, + "Rate1": 792, "Amount1": [ 1, 1 @@ -174,7 +174,7 @@ "Id": 18, "Bet": 85000, "ItemId1": 30001, - "Rate1": 1262, + "Rate1": 841, "Amount1": [ 1, 1 @@ -184,7 +184,7 @@ "Id": 19, "Bet": 90000, "ItemId1": 30001, - "Rate1": 1337, + "Rate1": 891, "Amount1": [ 1, 1 @@ -194,7 +194,7 @@ "Id": 20, "Bet": 95000, "ItemId1": 30001, - "Rate1": 1411, + "Rate1": 941, "Amount1": [ 1, 1 @@ -204,7 +204,7 @@ "Id": 21, "Bet": 100000, "ItemId1": 30001, - "Rate1": 1485, + "Rate1": 990, "Amount1": [ 1, 1 @@ -214,7 +214,7 @@ "Id": 22, "Bet": 150000, "ItemId1": 30001, - "Rate1": 2228, + "Rate1": 1485, "Amount1": [ 1, 1 @@ -224,7 +224,7 @@ "Id": 23, "Bet": 200000, "ItemId1": 30001, - "Rate1": 2970, + "Rate1": 1980, "Amount1": [ 1, 1 @@ -234,7 +234,7 @@ "Id": 24, "Bet": 250000, "ItemId1": 30001, - "Rate1": 3713, + "Rate1": 2475, "Amount1": [ 1, 1 @@ -244,170 +244,170 @@ "Id": 25, "Bet": 300000, "ItemId1": 30001, - "Rate1": 4455, + "Rate1": 2970, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 26, "Bet": 350000, "ItemId1": 30001, - "Rate1": 5198, + "Rate1": 3465, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 27, "Bet": 400000, "ItemId1": 30001, - "Rate1": 5940, + "Rate1": 3960, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 28, "Bet": 450000, "ItemId1": 30001, - "Rate1": 6683, + "Rate1": 4455, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 29, "Bet": 500000, "ItemId1": 30001, - "Rate1": 7425, + "Rate1": 4950, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 30, "Bet": 550000, "ItemId1": 30001, - "Rate1": 8168, + "Rate1": 5445, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 31, "Bet": 600000, "ItemId1": 30001, - "Rate1": 8910, + "Rate1": 5940, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 32, "Bet": 650000, "ItemId1": 30001, - "Rate1": 9653, + "Rate1": 6435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 33, "Bet": 700000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 34, "Bet": 750000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 35, "Bet": 800000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7035, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 36, "Bet": 850000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7235, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 37, "Bet": 900000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 38, "Bet": 950000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 39, "Bet": 1000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 40, "Bet": 2000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8035, "Amount1": [ 1, - 5 + 3 ] }, { "Id": 41, "Bet": 5000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8235, "Amount1": [ - 5, - 9 + 4, + 6 ] }, { @@ -416,8 +416,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 13, - 17 + 11, + 13 ] }, { @@ -426,8 +426,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 20, - 24 + 16, + 18 ] }, { @@ -436,8 +436,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 28, - 32 + 21, + 24 ] }, { @@ -446,8 +446,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 35, - 39 + 24, + 29 ] }, { @@ -456,8 +456,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 43, - 47 + 31, + 36 ] }, { @@ -466,8 +466,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 50, - 54 + 36, + 42 ] }, { @@ -476,8 +476,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 57, - 61 + 41, + 48 ] }, { @@ -486,8 +486,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 65, - 69 + 46, + 54 ] }, { @@ -496,8 +496,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 72, - 76 + 51, + 60 ] }, { @@ -506,8 +506,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 147, - 151 + 101, + 123 ] }, { @@ -516,8 +516,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 221, - 225 + 150, + 164 ] }, { @@ -526,8 +526,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 295, - 299 + 199, + 246 ] } ] diff --git a/data/DB_PetSkill.dat b/data/DB_PetSkill.dat new file mode 100644 index 0000000..622f190 Binary files /dev/null and b/data/DB_PetSkill.dat differ diff --git a/data/DB_PetSkill.json b/data/DB_PetSkill.json new file mode 100644 index 0000000..06f6923 --- /dev/null +++ b/data/DB_PetSkill.json @@ -0,0 +1,124 @@ +{ + "Arr": [ + { + "Id": 1, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 1, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{5}概率完全免疫", + "SKillValue": "5", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 2, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 2, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{6}概率完全免疫", + "SKillValue": "6", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 3, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 3, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{7}概率完全免疫", + "SKillValue": "7", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 4, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 4, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{8}概率完全免疫", + "SKillValue": "8", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 5, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 5, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{9}概率完全免疫", + "SKillValue": "9", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 6, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 6, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{10}概率完全免疫", + "SKillValue": "10", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 7, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 7, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{11}概率完全免疫", + "SKillValue": "11", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 8, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 8, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{12}概率完全免疫", + "SKillValue": "12", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 9, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 9, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{13}概率完全免疫", + "SKillValue": "13", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 10, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 10, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{14}概率完全免疫", + "SKillValue": "14", + "ItemConsum": { + "100013": 0 + } + } + ] +} \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 75bdd9f..48806c1 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@ -  - ( - / 2 \ No newline at end of file + (08;@dHPc + ((08;@dHP +/ 2(08;@dHP \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.json b/data/DB_PigBank_Diamond.json index ab24207..550f3a4 100644 --- a/data/DB_PigBank_Diamond.json +++ b/data/DB_PigBank_Diamond.json @@ -4,19 +4,37 @@ "Id": 1, "BuyCountMin": 1, "BuyCountMax": 1, - "CostDiamond": 30 + "CostDiamond": 30, + "MaxGold": 10000000, + "MaxDiamond": 150, + "DiamondId": 980001, + "CoinPrice": 100, + "DiamondPrice": 150, + "DiamondNowPrice": 99 }, { "Id": 2, "BuyCountMin": 2, "BuyCountMax": 2, - "CostDiamond": 40 + "CostDiamond": 40, + "MaxGold": 10000000, + "MaxDiamond": 300, + "DiamondId": 980002, + "CoinPrice": 100, + "DiamondPrice": 300, + "DiamondNowPrice": 199 }, { "Id": 3, "BuyCountMin": 3, "BuyCountMax": 99999999, - "CostDiamond": 50 + "CostDiamond": 50, + "MaxGold": 10000000, + "MaxDiamond": 750, + "DiamondId": 980003, + "CoinPrice": 100, + "DiamondPrice": 750, + "DiamondNowPrice": 499 } ] } \ No newline at end of file diff --git a/data/DB_Pigbank_Prop.dat b/data/DB_Pigbank_Prop.dat index 0ec5d89..264bbdf 100644 --- a/data/DB_Pigbank_Prop.dat +++ b/data/DB_Pigbank_Prop.dat @@ -1,6 +1,9 @@ - BankMaxCoin - WinCoinRate - LoseCoinRate + WinCoinRate + LoseCoinRate - DayBuyMaxCnt \ No newline at end of file + DayBuyMaxCnt +WinCoinRateDiamond +LoseCoinRateDiamond + +DayBuyMaxCntDiamond \ No newline at end of file diff --git a/data/DB_Pigbank_Prop.json b/data/DB_Pigbank_Prop.json index f340c30..0d31012 100644 --- a/data/DB_Pigbank_Prop.json +++ b/data/DB_Pigbank_Prop.json @@ -2,23 +2,33 @@ "Arr": [ { "Id": 1, - "PorpName": "BankMaxCoin", - "PropValue": 10000000 - }, - { - "Id": 2, "PorpName": "WinCoinRate", "PropValue": 5 }, { - "Id": 3, + "Id": 2, "PorpName": "LoseCoinRate", "PropValue": 10 }, { - "Id": 4, + "Id": 3, "PorpName": "DayBuyMaxCnt", "PropValue": 3 + }, + { + "Id": 4, + "PorpName": "WinCoinRateDiamond", + "PropValue": 5 + }, + { + "Id": 5, + "PorpName": "LoseCoinRateDiamond", + "PropValue": 10 + }, + { + "Id": 6, + "PorpName": "DayBuyMaxCntDiamond", + "PropValue": 3 } ] } \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 13a1186..714d1c1 100644 Binary files a/data/DB_PropExchange.dat and b/data/DB_PropExchange.dat differ diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 0960917..4077bc2 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/data/DB_Task.json b/data/DB_Task.json index 2480fa0..998d30a 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -146,8 +146,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -158,8 +158,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -171,7 +171,7 @@ "TargetTimes": 10000000, "FinishTimes": 1, "Award": { - "100001": 1000000 + "100001": 100000 } }, { @@ -182,8 +182,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -195,8 +195,8 @@ "TargetTimes": 3, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 10 + "100001": 1000000, + "100002": 1 } }, { @@ -207,7 +207,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 250000, + "100001": 25000, "50001": 1 } }, @@ -219,7 +219,7 @@ "TargetTimes": 5, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -231,7 +231,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 5000000, + "100001": 500000, "50001": 4 } }, @@ -243,7 +243,7 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -255,7 +255,7 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 12500000, + "100001": 1250000, "50001": 10 } }, @@ -267,7 +267,7 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 25000000, + "100001": 2500000, "50001": 20 } }, @@ -279,8 +279,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 20 + "100001": 100000, + "100002": 2 } }, { @@ -291,8 +291,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 20 + "100001": 1000000, + "100002": 2 } }, { @@ -303,8 +303,8 @@ "TargetTimes": 200000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 50 + "100001": 2000000, + "100002": 5 } }, { @@ -315,8 +315,8 @@ "TargetTimes": 1000000, "FinishTimes": 1, "Award": { - "100001": 50000000, - "100002": 100 + "100001": 5000000, + "100002": 10 } }, { @@ -327,8 +327,8 @@ "TargetTimes": 100000000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -340,8 +340,8 @@ "TargetTimes": 1000000000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -353,8 +353,8 @@ "TargetTimes": 10000000000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -366,8 +366,8 @@ "TargetTimes": 100000000000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -379,8 +379,8 @@ "TargetTimes": 500000000000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -392,8 +392,8 @@ "TargetTimes": 1000000000000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -405,8 +405,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -418,8 +418,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -431,8 +431,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -444,8 +444,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -457,8 +457,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -470,8 +470,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -483,8 +483,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -496,8 +496,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -509,8 +509,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -522,8 +522,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -535,8 +535,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -548,8 +548,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -561,8 +561,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -574,8 +574,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -587,8 +587,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -600,8 +600,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -613,8 +613,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -626,8 +626,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -639,8 +639,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "Position": [ 1, @@ -655,8 +655,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "Position": [ 1, @@ -671,8 +671,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "Position": [ 1, @@ -687,8 +687,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "Position": [ 1, @@ -703,8 +703,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "Position": [ 1, @@ -719,8 +719,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "Position": [ 1, @@ -735,8 +735,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -747,8 +747,8 @@ "TargetTimes": 20, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 } }, { @@ -759,8 +759,8 @@ "TargetTimes": 50, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 } }, { @@ -771,8 +771,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 } }, { @@ -783,8 +783,8 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 } }, { @@ -795,8 +795,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 } } ] diff --git a/data/DB_VIP.dat b/data/DB_VIP.dat index 6c97414..cd82553 100644 Binary files a/data/DB_VIP.dat and b/data/DB_VIP.dat differ diff --git a/data/DB_VIP.json b/data/DB_VIP.json index 620e503..2fb939d 100644 --- a/data/DB_VIP.json +++ b/data/DB_VIP.json @@ -52,7 +52,8 @@ ], "RewardOutlineID": [ 2 - ] + ], + "MatchFreeTimes": 1 }, { "Id": 2, @@ -81,7 +82,8 @@ ], "RewardOutlineID": [ 2 - ] + ], + "MatchFreeTimes": 2 }, { "Id": 3, @@ -110,7 +112,8 @@ ], "RewardOutlineID": [ 3 - ] + ], + "MatchFreeTimes": 3 }, { "Id": 4, @@ -139,7 +142,8 @@ ], "RewardOutlineID": [ 3 - ] + ], + "MatchFreeTimes": 4 }, { "Id": 5, @@ -168,7 +172,8 @@ ], "RewardOutlineID": [ 4 - ] + ], + "MatchFreeTimes": 5 }, { "Id": 6, @@ -197,7 +202,8 @@ ], "RewardOutlineID": [ 4 - ] + ], + "MatchFreeTimes": 6 }, { "Id": 7, @@ -226,7 +232,8 @@ ], "RewardOutlineID": [ 3 - ] + ], + "MatchFreeTimes": 7 }, { "Id": 8, @@ -255,7 +262,8 @@ ], "RewardOutlineID": [ 3 - ] + ], + "MatchFreeTimes": 8 }, { "Id": 9, @@ -284,7 +292,8 @@ ], "RewardOutlineID": [ 4 - ] + ], + "MatchFreeTimes": 9 }, { "Id": 10, @@ -313,7 +322,8 @@ ], "RewardOutlineID": [ 4 - ] + ], + "MatchFreeTimes": 10 }, { "Id": 11, @@ -342,7 +352,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 11 }, { "Id": 12, @@ -371,7 +382,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 12 }, { "Id": 13, @@ -400,7 +412,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 13 }, { "Id": 14, @@ -429,7 +442,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 14 }, { "Id": 15, @@ -458,7 +472,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 15 }, { "Id": 16, @@ -487,7 +502,8 @@ ], "RewardOutlineID": [ 0 - ] + ], + "MatchFreeTimes": 16 }, {} ] diff --git a/data/gameparam.json b/data/gameparam.json index b0d94cd..ac32d61 100644 --- a/data/gameparam.json +++ b/data/gameparam.json @@ -23,5 +23,5 @@ "ClosePreCreateRoom": true, "AgoraAddress": "http://47.105.78.29:8081", "InviteUrl": "http://47.105.78.29:8000/", - "RankTimeout": 5 + "RankTimeout": 2 } \ No newline at end of file diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 053ed4b..90b1e64 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -2,65 +2,205 @@ package mq import ( "encoding/json" - "fmt" + "errors" "time" - "github.com/astaxie/beego/cache" "mongo.games.com/goserver/core/broker" "mongo.games.com/goserver/core/broker/rabbitmq" "mongo.games.com/goserver/core/logger" + "mongo.games.com/game/common" "mongo.games.com/game/dbproxy/svc" "mongo.games.com/game/model" "mongo.games.com/game/mq" - rankproto "mongo.games.com/game/protocol/rank" ) -var InviteNumCache = cache.NewMemoryCache() - func init() { - mq.RegisterSubscriber(model.EvtBindInvite, func(e broker.Event) (err error) { + mq.RegisterSubscriber(model.EvtInvite, func(e broker.Event) (err error) { msg := e.Message() if msg != nil { defer func() { e.Ack() }() - var log model.BindInvite + var log model.EvtInviteMsg err = json.Unmarshal(msg.Body, &log) if err != nil { + logger.Logger.Errorf("EvtInvite json.Unmarshal error:%v msg:%v", err, string(msg.Body)) return } + logger.Logger.Tracef("EvtInvite log:%+v", log) - // 绑定 - err = svc.BindInviteSnId(log.Platform, log.SnId, log.InviteSnId, log.Ts) - if err != nil { - logger.Logger.Errorf("BindInviteSnId error:%v", err) - return err - } - - name := fmt.Sprintf("%v", log.InviteSnId) - b := InviteNumCache.Get(name) - n, _ := b.(int32) - if n > 0 { - n++ - } else { - n, err = svc.GetInviteNum(log.Platform, log.InviteSnId, int32(rankproto.RankInvite_InviteType_Total)) + var addRechargeScore bool + if log.Tp != common.InviteScoreCheckWeek { + addRechargeScore, err = svc.CheckInviteScore(&log.InviteScore) if err != nil { - logger.Logger.Errorf("BindInviteSnId error:%v", err) + logger.Logger.Errorf("EvtInvite SaveInviteScore error:%v msg:%+v %+v", err, log.InviteScore, log) return err } } - InviteNumCache.Put(name, n, int64(time.Hour.Seconds())) - // 更新绑定数量 - mq.Send(model.AckBindNum, &model.BindNum{ - SnId: log.InviteSnId, - Num: n, - }) + now := time.Unix(log.Ts, 0).Local() // 数据创建时间 - return + get := func(snid int32) (*model.EvtInviteAckMsg, error) { + if snid == 0 { + return nil, errors.New("not found") + } + n := new(model.EvtInviteAckMsg) + n.Platform = log.Platform + n.Snid = snid + n.Score, n.Num, n.Money, _, err = svc.GetInviteData(log.Platform, snid) + return n, err + } + + // 重置积分 + reset := func(snid int32) error { + if snid == 0 { + return nil + } + _, _, _, ts, err := svc.GetInviteData(log.Platform, snid) // 上次更新时间 + if err != nil { + logger.Logger.Errorf("EvtInvite GetInviteData error:%v snid:%v", err, snid) + return err + } + inSameWeek := common.InSameWeek(ts, now) + if !inSameWeek { + err = svc.ClearInviteScore(log.Platform, snid, now) + if err != nil { + logger.Logger.Errorf("EvtInvite ClearInviteScore error:%v snid:%v", err, snid) + return err + } + msg, err := get(snid) + if err != nil { + logger.Logger.Errorf("EvtInvite get error:%v snid:%v", err, snid) + return err + } + msg.Score = 0 + mq.Send(model.EvtInviteAck, msg) + } + return nil + } + + // 当前玩家积分是否跨周重置 + tmpSnid := log.SnId + for i := 0; i < 6; i++ { + if tmpSnid > 0 { + err = reset(tmpSnid) + if err != nil { + logger.Logger.Errorf("EvtInvite reset %v error:%v snid:%v", i, err, tmpSnid) + return err + } + } + if tmpSnid > 0 { + tmpSnid, err = svc.GetPSnId(log.Platform, tmpSnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId %v error:%v snid:%v", i, err, tmpSnid) + return err + } + } + } + + // 增加积分 + add := func(psnid, snid, level, tp int32, score, money, rate int64, addMoney bool) error { + if psnid <= 0 { + return nil + } + err = svc.AddInviteScore(log.Platform, psnid, snid, level, tp, score*rate/10000, rate, money, now, addMoney) + if err != nil { + logger.Logger.Errorf("EvtInvite add error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) + return err + } + msg, err := get(psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite add find error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) + return err + } + mq.Send(model.EvtInviteAck, msg) + return nil + } + + switch log.Tp { + case common.InviteScoreTypeBind: + // 更新绑定数量 + // 更新邀请积分 + // 1.邀请人增加积分 + add(log.InviteSnId, log.SnId, 0, log.Tp, log.Score, log.Money, 10000, false) + // 2.上级增加积分 + var psnid int32 + if len(log.Rate) > 0 { + psnid, err = svc.GetPSnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 2 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.InviteSnId, 1, log.Tp, log.Score, log.Money, log.Rate[0], false) + } + } + if len(log.Rate) > 1 && psnid > 0 { + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 2 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.InviteSnId, 2, log.Tp, log.Score, log.Money, log.Rate[1], false) + } + } + if len(log.Rate) > 2 && psnid > 0 { + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 3 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.InviteSnId, 3, log.Tp, log.Score, log.Money, log.Rate[2], false) + } + } + + case common.InviteScoreTypePay: + // 更新充值积分,上级积分增加 + add(log.SnId, 0, 0, common.InviteScoreTypePayMe, log.Score, log.Money, 10000, false) + var psnid int32 + if len(log.Rate) > 0 { + add(log.InviteSnId, log.SnId, 1, log.Tp, log.Score, log.Money, log.Rate[0], true) + psnid, err = svc.GetPSnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 3 error:%v snid:%v", err, log.InviteSnId) + return err + } + } + if len(log.Rate) > 1 && psnid > 0 { + add(psnid, log.SnId, 2, log.Tp, log.Score, log.Money, log.Rate[1], false) + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 4 error:%v snid:%v", err, psnid) + return err + } + } + if len(log.Rate) > 2 && psnid > 0 { + add(psnid, log.SnId, 3, log.Tp, log.Score, log.Money, log.Rate[2], false) + } + if addRechargeScore { + add(log.InviteSnId, log.SnId, 1, common.InviteScoreTypeRecharge, log.RechargeScore, log.Money, 10000, true) + } + + case common.InviteScoreTypeRecharge: + // 更新自己的积分 + if addRechargeScore { + add(log.InviteSnId, log.SnId, 1, log.Tp, log.RechargeScore, log.Money, 10000, true) + } else { + // 只增加充值金额 + add(log.InviteSnId, log.SnId, 0, log.Tp, 0, log.Money, 10000, true) + } + + case common.InviteScoreCheckWeek: + + default: + logger.Logger.Errorf("EvtInvite tp error, %v", log.Tp) + return err + } } return nil - }, broker.Queue(model.EvtBindInvite), broker.DisableAutoAck(), rabbitmq.DurableQueue()) + }, broker.Queue(model.EvtInvite), broker.DisableAutoAck(), rabbitmq.DurableQueue()) } diff --git a/dbproxy/svc/l_dbshoplog.go b/dbproxy/svc/l_dbshoplog.go index 19c6ad7..aade343 100644 --- a/dbproxy/svc/l_dbshoplog.go +++ b/dbproxy/svc/l_dbshoplog.go @@ -18,6 +18,8 @@ func DbShopLogCollection(plt string) *mongo.Collection { dbShopRec.EnsureIndex(mgo.Index{Key: []string{"pageid"}, Background: true, Sparse: true}) dbShopRec.EnsureIndex(mgo.Index{Key: []string{"state"}, Background: true, Sparse: true}) dbShopRec.EnsureIndex(mgo.Index{Key: []string{"shopid"}, Background: true, Sparse: true}) + dbShopRec.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + dbShopRec.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) } return dbShopRec } diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go new file mode 100644 index 0000000..bd4dc30 --- /dev/null +++ b/dbproxy/svc/l_invitescore.go @@ -0,0 +1,291 @@ +package svc + +import ( + "errors" + "net/rpc" + "sort" + "time" + + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/common" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" +) + +var ( + InviteScoreDBName = "log" + InviteScoreCollName = "log_invitescore" + InviteScoreColError = errors.New("InviteScore collection open failed") +) + +func InviteScoreCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, InviteScoreDBName) + if s != nil { + c, first := s.DB().C(InviteScoreCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"upsnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"downsnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"level"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"tp"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"money"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"score"}, Background: true, Sparse: true}) + } + return c + } + + return nil +} + +type BindScoreSvc struct { +} + +func CheckInviteScore(req *model.InviteScore) (b bool, err error) { + logger.Logger.Tracef("SaveInviteScore req:%+v", *req) + if req.InviteSnId == 0 || req.SnId == 0 { + return false, nil + } + + u := PlayerDataCollection(req.Platform) + if u == nil { + return false, PlayerColError + } + + // 不能重复绑定 + //if req.Tp == common.InviteScoreTypeBind { + // psnid, err := GetPSnId(req.Platform, req.SnId) + // if err == nil && psnid > 0 { + // // 已经绑定 + // return false, errors.New("already bind") + // } + //} + + // 必须已经绑定 + if req.Tp != common.InviteScoreTypeBind { + psnid, err := GetPSnId(req.Platform, req.SnId) + if err != nil || psnid == 0 { + // 还没有绑定上级 + logger.Logger.Errorf("not bind error:%v", err) + return false, err + } + } + + // 充值成功记录 + if req.Tp == common.InviteScoreTypePay || req.Tp == common.InviteScoreTypeRecharge { + // 是否已经记录过 + c := InviteScoreCollection(req.Platform) + if c == nil { + return false, InviteScoreColError + } + a := &model.LogInviteScore{} + err = c.Find(bson.M{"downsnid": req.SnId, "upsnid": req.InviteSnId, "tp": common.InviteScoreTypeRecharge}).One(a) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return false, errors.New("find error") + } + if err == nil && a.UpSnid > 0 { + + } else { + b = true + } + } + + return b, nil +} + +// GetInviteRankList 获取周榜 +func (b *BindScoreSvc) GetInviteRankList(req *model.FindPlayerRankInviteListArgs, ret *model.FindPlayerRankInviteListReply) error { + c := RankInviteCollection(req.Platform) + if c == nil { + return RankInviteColError + } + + ret.RankType = req.RankType + + var st int64 + switch req.RankType { + case 1: //todo 总榜 + return nil + case 2: // 本周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + case 3: //todo 月榜 + return nil + case 4: // 上周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + st -= 7 * 24 * 3600 + } + var list []*model.RankInvite + err := c.Find(bson.M{"week": st}).Sort("-score").Limit(int(model.GameParamData.RankInviteMaxNum)).All(&list) + if err != nil { + logger.Logger.Errorf("GetInviteRankList error: %v", err) + return err + } + + var conds []int32 + if len(list) > 0 { + type PInfo struct { + SnId int32 + Name string // 昵称 + Roles *model.RolePetInfo + } + var retPlayerList []PInfo + cplayerdata := PlayerDataCollection(req.Platform) + if cplayerdata == nil { + return err + } + + for i := 0; i < len(list); i++ { + conds = append(conds, list[i].SnId) + } + + selecter := bson.M{"snid": bson.M{"$in": conds}} + err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) + if err != nil { + logger.Logger.Error("GetInviteRankList find player is error", err) + return err + } + + for _, inviteInfo := range list { + for _, playerData := range retPlayerList { + if inviteInfo.SnId == playerData.SnId { + var RankInvite model.PlayerRankInvite + RankInvite.Name = playerData.Name + RankInvite.Score = inviteInfo.Score + RankInvite.SnId = inviteInfo.SnId + + // 头像模型ID + roleId := common.DefaultRoleId + if playerData.Roles != nil { + roleId = int(playerData.Roles.ModId) + } + RankInvite.ModId = int32(roleId) + + RankInvite.InviteNum = int32(inviteInfo.Num) + ret.List = append(ret.List, &RankInvite) + break + } + } + } + } + + return nil +} + +// GetInviteScoreByType 获取玩家排行信息 +func (b *BindScoreSvc) GetInviteScoreByType(req *model.FindPlayerRankInviteScoreArgs, ret *model.FindPlayerRankInviteScoreReply) error { + c := RankInviteCollection(req.Platform) + if c == nil { + return RankInviteColError + } + + ret.RankType = req.RankType + + var st int64 + switch req.RankType { + case 1: //todo 总榜 + return nil + case 2: // 本周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + case 3: //todo 月榜 + return nil + case 4: // 上周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + st -= 7 * 24 * 3600 + } + res := new(model.RankInvite) + err := c.Find(bson.M{"week": st, "snid": req.SnId}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Warnf("GetInviteScoreByType error: %v", err) + return err + } + + type PInfo struct { + SnId int32 + Name string // 昵称 + Roles *model.RolePetInfo + } + + var retPlayer PInfo + u := PlayerDataCollection(req.Platform) + if u == nil { + return PlayerColError + } + err = u.Find(bson.M{"snid": req.SnId}).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).One(&retPlayer) + if err != nil { + logger.Logger.Error("GetInviteScoreByType find player is error", err) + return err + } + + // 头像模型ID + roleId := common.DefaultRoleId + if retPlayer.Roles != nil { + roleId = int(retPlayer.Roles.ModId) + } + ret.Data = model.PlayerRankInvite{ + SnId: req.SnId, + Score: res.Score, + InviteNum: int32(res.Num), + Name: retPlayer.Name, + ModId: int32(roleId), + } + return nil +} + +// GetInviteList 获取邀请列表 +func (b *BindScoreSvc) GetInviteList(req *model.InviteLisArgs, ret *model.InviteListRet) error { + c := PlayerDataCollection(req.Platform) + if c == nil { + return InviteScoreColError + } + + type M struct { + Name string + Roles *model.RolePetInfo + CreateTime time.Time + SnId int32 + IScore int64 + IScoreTs time.Time + } + + var res []*M + + err := c.Find(bson.M{"psnid": req.SnId}).Select(bson.M{"snid": 1, "iscore": 1, "iscorets": 1, "name": 1, "createtime": 1, "roles": 1}).All(&res) + if err != nil { + logger.Logger.Errorf("GetInviteList error:%v", err) + return err + } + + now := time.Now().Local() + for _, v := range res { + if !common.InSameWeek(now, v.IScoreTs.Local()) { + v.IScore = 0 + } + roleId := common.DefaultRoleId + if v.Roles != nil && v.Roles.ModId != 0 { + roleId = int(v.Roles.ModId) + } + ret.List = append(ret.List, &model.InviteInfo{ + Name: v.Name, + SnId: v.SnId, + CreateTs: v.CreateTime.Unix(), + Score: v.IScore, + ModId: int32(roleId), + }) + } + sort.Slice(ret.List, func(i, j int) bool { + return ret.List[i].Score > ret.List[j].Score + }) + + return nil +} + +//todo 每周清理数据,绑定关系不能删除 + +var GlobalBindScoreSvc = new(BindScoreSvc) + +func init() { + rpc.Register(GlobalBindScoreSvc) +} diff --git a/dbproxy/svc/l_rankinvite.go b/dbproxy/svc/l_rankinvite.go new file mode 100644 index 0000000..36a30b6 --- /dev/null +++ b/dbproxy/svc/l_rankinvite.go @@ -0,0 +1,55 @@ +package svc + +import ( + "errors" + + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/common" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" +) + +var ( + RankInviteDBName = "log" + RankInviteCollName = "log_rankinvite" + RankInviteColError = errors.New("RankInvite collection open failed") +) + +func RankInviteCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, RankInviteDBName) + if s != nil { + c, first := s.DB().C(RankInviteCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"num"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"week", "-score"}, Background: true, Sparse: true}) + } + return c + } + + return nil +} + +func SaveRankInvite(data *model.RankInvite) error { + c := RankInviteCollection(data.Platform) + if c == nil { + return RankInviteColError + } + + data.Week = common.GetWeekStartTs(data.Ts) + + _, err := c.Upsert(bson.M{"snid": data.SnId, "week": data.Week}, data) + if err != nil { + logger.Logger.Tracef("SaveRankInvite error:%v", err) + return err + } + return nil +} + +//todo 每周清理数据 diff --git a/dbproxy/svc/l_rankplayercoin.go b/dbproxy/svc/l_rankplayercoin.go index 5050030..d3da869 100644 --- a/dbproxy/svc/l_rankplayercoin.go +++ b/dbproxy/svc/l_rankplayercoin.go @@ -23,7 +23,7 @@ func RankPlayerCoinCollection(plt string) *mongo.Collection { c, first := s.DB().C(RankPlayerCoinCollName) if first { c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"coin"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-coin"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/l_rankplayerlevel.go b/dbproxy/svc/l_rankplayerlevel.go index 006746f..42699ab 100644 --- a/dbproxy/svc/l_rankplayerlevel.go +++ b/dbproxy/svc/l_rankplayerlevel.go @@ -22,7 +22,7 @@ func RankPlayerLevelCollection(plt string) *mongo.Collection { c, first := s.DB().C(RankPlayerLevelCollName) if first { c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"exp"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-exp"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/l_rankseasion.go b/dbproxy/svc/l_rankseasion.go index 3e8364f..1cdaf16 100644 --- a/dbproxy/svc/l_rankseasion.go +++ b/dbproxy/svc/l_rankseasion.go @@ -26,7 +26,7 @@ func RankSeasonCollection(plt string, rankType int32) *mongo.Collection { c, first := s.DB().C(fmt.Sprintf("%s_%d", RankSeasonCollName, rankType)) if first { c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"isrobot", "seasonid", "score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"isrobot", "seasonid", "-score"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/u_invitecode.go b/dbproxy/svc/u_invitecode.go index d2f0beb..b303c58 100644 --- a/dbproxy/svc/u_invitecode.go +++ b/dbproxy/svc/u_invitecode.go @@ -21,7 +21,7 @@ import ( var ( InviteCodeDBName = "user" - InviteCodeCollName = "user_invitecode" + InviteCodeCollName = "user_icode" InviteCodeColError = errors.New("InviteCode collection open failed") InviteCodeMutex = sync.Mutex{} ) @@ -105,6 +105,19 @@ func (i *InviteCodeSvc) GetSnIdByCode(req *model.InviteSnIdReq, ret *model.Invit return nil } +func GetCodeBySnId(platform string, snid int32) (string, error) { + c := InviteCodeCollection(platform) + if c == nil { + return "", InviteCodeColError + } + col := new(model.InviteCode) + err := c.Find(bson.M{"snid": snid}).One(col) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return "", err + } + return col.Code, err +} + func init() { rpc.Register(new(InviteCodeSvc)) } diff --git a/dbproxy/svc/u_invitescore.go b/dbproxy/svc/u_invitescore.go deleted file mode 100644 index c8eca1f..0000000 --- a/dbproxy/svc/u_invitescore.go +++ /dev/null @@ -1,429 +0,0 @@ -package svc - -import ( - "errors" - "net/rpc" - "time" - - "github.com/globalsign/mgo" - "github.com/globalsign/mgo/bson" - "mongo.games.com/goserver/core/logger" - - "mongo.games.com/game/common" - "mongo.games.com/game/dbproxy/mongo" - "mongo.games.com/game/model" - rankproto "mongo.games.com/game/protocol/rank" -) - -var ( - InviteScoreDBName = "user" - InviteScoreCollName = "user_invitescore" - InviteScoreColError = errors.New("InviteScore collection open failed") -) - -func InviteScoreCollection(plt string) *mongo.Collection { - s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, InviteScoreDBName) - if s != nil { - c, first := s.DB().C(InviteScoreCollName) - if first { - c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"tp"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"weekindex"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"monthindex"}, Background: true, Sparse: true}) - } - return c - } - - return nil -} - -type BindScoreSvc struct { -} - -func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.InviteScoreRet) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - type M struct { - Score int64 - Money int64 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - }}, - {"$group": bson.M{ - "_id": nil, - "score": bson.M{"$sum": "$score"}, - "money": bson.M{"$sum": "$money"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScore AllowDiskUse is error", err) - return err - } - - if len(tc) > 0 { - ret.Score = tc[0].Score - ret.Money = tc[0].Money - c := PlayerDataCollection(req.Platform) - if c == nil { - return PlayerColError - } - err = c.Update(bson.M{"snid": req.SnId}, bson.M{"$set": bson.M{"invitescore": tc[0].Score}}) - if err != nil { - logger.Logger.Error("GetInviteScore update invitescore is error", err) - return err - } - } - - tc = tc[:0] - err = c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - "score": bson.M{"$gt": 0}, - }}, - {"$group": bson.M{ - "_id": nil, - "score": bson.M{"$sum": "$score"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScore z AllowDiskUse is error", err) - return err - } - - if len(tc) > 0 { - ret.ZScore = tc[0].Score - } - - return nil -} - -func (b *BindScoreSvc) SaveInviteScore(req *model.InviteScore, ret *bool) error { - logger.Logger.Tracef("SaveInviteScore req:%+v", *req) - if req.InviteSnId == 0 { - return nil - } - req.Id = bson.NewObjectId() - u := PlayerDataCollection(req.Platform) - if u == nil { - return PlayerColError - } - - type M struct { - InviteScore int64 - } - r := new(M) - err := u.Find(bson.M{"snid": req.InviteSnId}).Select(bson.M{"invitescore": 1}).One(r) - if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Errorf("GetInviteScore Find error:%v", err) - return err - } - - if req.Score < 0 { - if -req.Score > r.InviteScore { - req.Score = -r.InviteScore - } - } - - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - ts := req.Ts - if req.Tp != common.InviteScoreTypeBind { - a := &model.InviteScore{} - err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) - if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Errorf("GetInviteScore Find BindTime error:%v", err) - return err - } - ts = a.Ts - } - - bindTime := time.Unix(0, ts).Local() - year, month, day := bindTime.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - // 本周起始日期(周日) - req.WeekIndex = today.AddDate(0, 0, -int(today.Weekday())).Unix() - // 本月起始日期 - req.MonthIndex = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - - err = c.Insert(req) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert error:%v", err) - return err - } - - err = u.Update(bson.M{"snid": req.InviteSnId}, bson.M{"$inc": bson.M{"invitescore": req.Score}}) - if err != nil { - logger.Logger.Errorf("inc InviteScore error:%v", err) - return err - } - - *ret = true - return nil -} - -func (b *BindScoreSvc) GetInviteRankList(req *model.FindPlayerRankInviteListArgs, ret *model.FindPlayerRankInviteListReply) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - matchParam := bson.M{ - "score": bson.M{"$gt": 0}, - } - now := time.Now().Local() - startTime := now.AddDate(-100, 0, 0).UnixNano() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if req.RankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if req.RankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } else { - matchParam["ts"] = bson.M{"$gte": startTime, "$lte": now.UnixNano()} - } - - type M struct { - InviteSnId int32 // 邀请人id - Score int64 // 积分 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": matchParam}, - {"$group": bson.M{ - "_id": bson.M{ - "invitesnid": "$invitesnid", - }, - "invitesnid": bson.M{"$first": "$invitesnid"}, - "score": bson.M{"$sum": "$score"}, - }}, - { - "$sort": bson.M{"ts": -1}, - }, - { - "$sort": bson.M{"score": -1}, - }, - { - "$limit": model.GameParamData.RankInviteMaxNum, - }, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteRankList z AllowDiskUse is error", err) - return err - } - - var conds []int32 - if len(tc) > 0 { - - type PInfo struct { - SnId int32 - Name string // 昵称 - Roles *model.RolePetInfo - } - - var retPlayerList []PInfo - - cplayerdata := PlayerDataCollection(req.Platform) - if cplayerdata == nil { - return err - } - - for i := 0; i < len(tc); i++ { - conds = append(conds, tc[i].InviteSnId) - } - - selecter := bson.M{"snid": bson.M{"$in": conds}} - //err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) - err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) - if err != nil { - logger.Logger.Error("svc.FindInvitePlayerList is error", err) - return nil - } - - for _, inviteInfo := range tc { - for _, playerData := range retPlayerList { - if inviteInfo.InviteSnId == playerData.SnId { - var RankInvite model.PlayerRankInvite - RankInvite.Name = playerData.Name - RankInvite.Score = inviteInfo.Score - RankInvite.SnId = inviteInfo.InviteSnId - - // 头像模型ID - roleId := common.DefaultRoleId - if playerData.Roles != nil { - roleId = int(playerData.Roles.ModId) - } - RankInvite.ModId = int32(roleId) - - RankInvite.InviteNum, _ = GetInviteNum(req.Platform, inviteInfo.InviteSnId, req.RankType) - ret.List = append(ret.List, &RankInvite) - - break - } - } - } - ret.RankType = req.RankType - } - - return nil -} - -func (b *BindScoreSvc) GetInviteScoreByType(req *model.FindPlayerRankInviteScoreArgs, ret *model.FindPlayerRankInviteScoreReply) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - matchParam := bson.M{ - "invitesnid": req.SnId, - "score": bson.M{"$gt": 0}, - } - now := time.Now().Local() - startTime := now.AddDate(-100, 0, 0).UnixNano() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if req.RankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if req.RankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } else { - matchParam["ts"] = bson.M{"$gte": startTime, "$lte": now.UnixNano()} - } - - type M struct { - InviteSnId int32 // 邀请人id - Score int64 // 积分 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": matchParam}, - {"$group": bson.M{ - "_id": nil, - "invitesnid": bson.M{"$first": "$invitesnid"}, - "score": bson.M{"$sum": "$score"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScoreByType z AllowDiskUse is error", err) - return err - } - - type PInfo struct { - SnId int32 - Name string // 昵称 - Roles *model.RolePetInfo - } - - var retPlayer PInfo - u := PlayerDataCollection(req.Platform) - if u == nil { - return err - } - err = u.Find(bson.M{"snid": req.SnId}).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).One(&retPlayer) - if err != nil { - logger.Logger.Error("svc.GetInviteScoreByType is error", err) - return nil - } - - var rankInvite model.PlayerRankInvite - rankInvite.Name = retPlayer.Name - if len(tc) > 0 { - rankInvite.Score = tc[0].Score - } - rankInvite.SnId = req.SnId - // 头像模型ID - roleId := common.DefaultRoleId - if retPlayer.Roles != nil { - roleId = int(retPlayer.Roles.ModId) - } - rankInvite.ModId = int32(roleId) - rankInvite.InviteNum, _ = GetInviteNum(req.Platform, req.SnId, req.RankType) - ret.Data = rankInvite - - ret.RankType = req.RankType - - return nil -} - -func (b *BindScoreSvc) GetInviteList(req *model.InviteLisArgs, ret *model.InviteListRet) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - type M struct { - SnId int32 - Score int64 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - }}, - {"$group": bson.M{ - "_id": bson.M{ - "snid": "$snid", - }, - "snid": bson.M{"$first": "$snid"}, - "score": bson.M{"$sum": "$score"}, - }}, - { - "$sort": bson.M{ - "score": -1, - }, - }, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteList AllowDiskUse is error", err) - return err - } - - u := PlayerDataCollection(req.Platform) - if u == nil { - return PlayerColError - } - - for _, v := range tc { - d := &model.PlayerBaseInfo2{} - err = u.Find(bson.M{"snid": v.SnId}).Select(bson.M{"name": 1, "createtime": 1, "roles": 1}).One(d) - if err != nil { - logger.Logger.Warnf("GetInviteList Find player is error:%v", err) - } - roleId := common.DefaultRoleId - if d.Roles != nil && d.Roles.ModId != 0 { - roleId = int(d.Roles.ModId) - } - ret.List = append(ret.List, &model.InviteInfo{ - Name: d.Name, - SnId: v.SnId, - CreateTs: d.CreateTime.Unix(), - Score: v.Score, - ModId: int32(roleId), - }) - } - - return nil -} - -func init() { - rpc.Register(new(BindScoreSvc)) -} diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 360a28c..c6ff636 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -21,7 +21,6 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/dbproxy/mongo" "mongo.games.com/game/model" - rankproto "mongo.games.com/game/protocol/rank" ) var ( @@ -40,12 +39,12 @@ func PlayerDataCollection(plt string) *mongo.Collection { c_playerdata.EnsureIndex(mgo.Index{Key: []string{"snid"}, Unique: true, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"channel"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"tel"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"invitecode"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"name"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"createtime"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"-createtime"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"othercode"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"icode"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"psnid"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"pcode"}, Background: true, Sparse: true}) } return c_playerdata } @@ -247,7 +246,7 @@ func (svc *PlayerDataSvc) CreatePlayerDataByThird(args *model.CreatePlayer, ret func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, ret *model.PlayerDataRet) (err error) { cplayerdata := PlayerDataCollection(args.Plt) if cplayerdata == nil { - return + return PlayerColError } acc := args.AccId pd := &model.PlayerData{} @@ -267,13 +266,13 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, if !bson.IsObjectIdHex(acc) { logger.Logger.Warn("NewPlayer failed: acc is illeage ", acc) - return + return errors.New("acc is illeage") } var a *model.Account a, err = _AccountSvc.getAccount(args.Plt, args.AccId) if err != nil { logger.Logger.Warnf("_AccountSvc.getAccount(%v,%v) failed:%v", args.Plt, args.AccId, err) - return + return err } id := a.SnId @@ -281,7 +280,7 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, id, err = GetOnePlayerIdFromBucket() if err != nil { logger.Logger.Warn("NewPlayer failed:", err) - return + return err } } @@ -298,21 +297,26 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, dataParams.Ip, int64(args.AddCoin), "", a.DeviceInfo, a.TagKey, a.AccountType) pd.HeadUrl = args.HeadUrl if pd != nil { + if pd.ICode == "" { + code, _ := GetInviteCode(pd.Platform, pd.SnId) + pd.ICode = code + pd.IScoreTs = time.Now() + } err = cplayerdata.Insert(pd) if err != nil { logger.Logger.Trace("CreatePlayerDataOnRegister Insert failed:", err) - return + return err } ret.Pd = pd ret.IsNew = true - return + return nil } - return + return nil } if CorrectData(pd) { } ret.Pd = pd - return + return nil } func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArgs, ret *model.PlayerDataRet) (err error) { @@ -321,6 +325,30 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg return nil } + f := func(p *model.PlayerData) { + // 更新一下绑定关系 + if p.PSnId > 0 && p.PCode != "" { + return + } + c := InviteScoreCollection(args.Plt) + if c == nil { + return + } + res := new(model.LogInviteScore) + c.Find(bson.M{"downsnid": args.SnId, "tp": common.InviteScoreTypeBind}).One(res) + param := bson.M{} + if res.UpSnid > 0 { + p.PSnId = int32(res.UpSnid) + param["psnid"] = p.PSnId + code, _ := GetCodeBySnId(args.Plt, p.PSnId) + if code != "" { + p.PCode = code + param["pcode"] = code + } + cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"$set": param}) + } + } + var code string err = cplayerdata.Find(bson.M{"snid": args.SnId}).One(&ret.Pd) if err != nil { @@ -346,15 +374,16 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg pd := model.NewPlayerData(a.AccountId.Hex(), name, a.SnId, a.Channel, a.Platform, a.Params, a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.TagKey, a.AccountType) if pd != nil { + if pd.ICode == "" { + code, _ = GetInviteCode(pd.Platform, pd.SnId) + pd.ICode = code + pd.IScoreTs = time.Now() + } err = cplayerdata.Insert(pd) if err != nil { logger.Logger.Errorf("GetPlayerDataBySnId Insert err:%v acc:%v snid:%v", err, a.AccountId.Hex(), a.SnId) return err } - if pd.InviteCode == "" { - code, err = GetInviteCode(pd.Platform, pd.SnId) - pd.InviteCode = code - } ret.IsNew = true ret.Pd = pd return nil @@ -362,10 +391,13 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg } return err } - if ret.Pd.InviteCode == "" { - code, err = GetInviteCode(ret.Pd.Platform, ret.Pd.SnId) - ret.Pd.InviteCode = code + if ret.Pd.ICode == "" { + code, _ = GetInviteCode(ret.Pd.Platform, ret.Pd.SnId) + ret.Pd.ICode = code + ret.Pd.IScoreTs = time.Now() + cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"$set": bson.M{"icode": code, "iscorets": ret.Pd.IScoreTs}}) } + f(ret.Pd) if args.CorrectData && ret.Pd != nil { CorrectData(ret.Pd) } @@ -459,6 +491,12 @@ func SavePlayerData(pd *model.PlayerData) (err error) { } if pd != nil { model.RecalcuPlayerCheckSum(pd) + //todo 排除字段更新,有没有更新好的方法 + pd.IScore, pd.INum, pd.IMoney, pd.IScoreTs, err = GetInviteData(pd.Platform, pd.SnId) + if err != nil { + logger.Logger.Errorf("model.SavePlayerData GetInviteData %v err:%v", pd.SnId, err) + return + } _, err = cplayerdata.Upsert(bson.M{"_id": pd.Id}, pd) if err != nil { logger.Logger.Errorf("model.SavePlayerData %v err:%v", pd.SnId, err) @@ -1495,87 +1533,167 @@ func (svc *PlayerDataSvc) GetPlayerInviteSnid(req *model.PlayerIsExistBySnIdArgs } type t struct { - InviteSnId int32 + PSnId int32 } res := &t{} - err := c.Find(bson.M{"snid": req.SnId}).Select(bson.M{"invitesnid": 1}).One(res) - if err != nil && errors.Is(err, mgo.ErrNotFound) { + err := c.Find(bson.M{"snid": req.SnId}).Select(bson.M{"psnid": 1}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { return err } - *resp = res.InviteSnId + *resp = res.PSnId return nil } -func (svc *PlayerDataSvc) GetInviteNum(req *model.PlayerIsExistBySnIdArgs, resp *int32) error { - n, err := GetInviteNum(req.Plt, req.SnId, int32(rankproto.RankInvite_InviteType_Total)) +func (svc *PlayerDataSvc) BindInviteSnId(args *model.BindArgs, ret *bool) error { + err := BindInviteSnId(args.Platform, args.SnId, args.PSnId, args.PCode) if err != nil { return err } - *resp = n + *ret = true return nil } -func GetInviteNum(platform string, snId int32, rankType int32) (int32, error) { - var err error - var n int - switch rankType { - case int32(rankproto.RankInvite_InviteType_Week), int32(rankproto.RankInvite_InviteType_Month): - matchParam := bson.M{ - "invitesnid": snId, - "tp": common.InviteScoreTypeBind, - } - now := time.Now().Local() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if rankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if rankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } - c := InviteScoreCollection(platform) - if c == nil { - return 0, InviteScoreColError - } - n, err = c.Find(matchParam).Count() - if err != nil { - return 0, err - } - - default: - c := PlayerDataCollection(platform) - if c == nil { - return 0, PlayerColError - } - n, err = c.Find(bson.M{"invitesnid": snId}).Count() - if err != nil { - return 0, err - } - } - - return int32(n), nil -} - -func BindInviteSnId(platform string, snId, inviteSnId int32, ts int64) error { +func BindInviteSnId(platform string, snId, inviteSnId int32, code string) error { c := PlayerDataCollection(platform) if c == nil { return PlayerColError } - err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"invitesnid": inviteSnId}}) + err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"psnid": inviteSnId, "pcode": code}}) if err != nil { logger.Logger.Error("BindInviteSnId error ", err) return err } + return nil +} + +func ClearInviteScore(platform string, snId int32, now time.Time) error { + c := PlayerDataCollection(platform) + if c == nil { + return PlayerColError + } + + err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"iscore": 0, "iscorets": now}}) + if err != nil { + logger.Logger.Error("ClearInviteScore error ", err) + return err + } return nil } +func AddInviteScore(platform string, psnId, snid, level, tp int32, num, rate, money int64, now time.Time, addMoney bool) error { + logger.Logger.Tracef("AddInviteScore ==> platform %v, psnId %v, snid %v, level %v, tp %v, num %v, rate %v, money %v, now %v, addMoney %v", + platform, psnId, snid, level, tp, num, rate, money, now, addMoney) + i := InviteScoreCollection(platform) + if i == nil { + return InviteScoreColError + } + + id := bson.NewObjectId() + err := i.Insert(&model.LogInviteScore{ + Id: id, + Platform: platform, + UpSnid: psnId, + DownSnid: snid, + Level: level, + Tp: tp, + Rate: rate, + Score: num, + Money: money, + Ts: now.Unix(), + }) + + if err != nil { + logger.Logger.Error("AddInviteScore LogInviteScore error ", err) + return err + } + + c := PlayerDataCollection(platform) + if c == nil { + return PlayerColError + } + + myMoney := money + if !addMoney { + myMoney = 0 + } + + addNum := int64(0) + if level == 0 && tp == common.InviteScoreTypeBind { + addNum = 1 + } + + err = c.Update(bson.M{"snid": psnId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": myMoney, "inum": addNum}, "$set": bson.M{"iscorets": now}}) + if err != nil { + i.RemoveId(id) + logger.Logger.Error("AddInviteScore error ", err) + return err + } + + // 更新排行榜 + type m struct { + IScore int64 + INum int64 + } + res := &m{} + err = c.Find(bson.M{"snid": psnId}).Select(bson.M{"iscore": 1, "inum": 1}).One(res) + if err != nil { + logger.Logger.Error("AddInviteScore find error ", err) + return err + } + + SaveRankInvite(&model.RankInvite{ + Platform: platform, + SnId: psnId, + Num: res.INum, + Score: res.IScore, + Ts: now.Unix(), + }) + + return nil +} + +func GetInviteData(platform string, snId int32) (iscore, inum, imoney int64, iscorets time.Time, err error) { + c := PlayerDataCollection(platform) + if c == nil { + err = PlayerColError + return + } + type M struct { + IScore, Imoney, Inum int64 + IScoreTs time.Time + } + res := &M{} + err = c.Find(bson.M{"snid": snId}).Select(bson.M{"iscore": 1, "inum": 1, "imoney": 1, "iscorets": 1}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return + } + res.IScoreTs = res.IScoreTs.Local() + return res.IScore, res.Inum, res.Imoney, res.IScoreTs, nil +} + +func GetPSnId(platform string, snId int32) (psnId int32, err error) { + c := PlayerDataCollection(platform) + if c == nil { + err = PlayerColError + return + } + type M struct { + PSnId int32 + } + res := &M{} + err = c.Find(bson.M{"snid": snId}).Select(bson.M{"psnid": 1}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return 0, err + } + return res.PSnId, nil +} + func CorrectData(pd *model.PlayerData) bool { //var coinTotal int64 dirty := false diff --git a/etcd/keyconf.go b/etcd/keyconf.go index 51c1434..1ddc523 100644 --- a/etcd/keyconf.go +++ b/etcd/keyconf.go @@ -31,4 +31,5 @@ const ( ETCDKEY_GAME_CONFIG = "/game/plt/gameconfig/" // 游戏管理/全局配置 ETCDKEY_ACT_PHONELOTTERY = "/game/act_phoneLottery" ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 + ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 ) diff --git a/gamesrv/base/player.go b/gamesrv/base/player.go index 34a2a30..b34d8bc 100644 --- a/gamesrv/base/player.go +++ b/gamesrv/base/player.go @@ -1325,8 +1325,13 @@ func (this *Player) UpdatePigBankCoin(gainTexCoin int64) { } return 0 } - - BankCoinMax := fGetPropValue("BankMaxCoin") + BankCoinMax := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if this.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && this.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankCoinMax = int64(data.MaxGold) + break + } + } pack := &player.SCPigBankCoin{} diff --git a/model/baginfo.go b/model/baginfo.go index 84e994b..6591384 100644 --- a/model/baginfo.go +++ b/model/baginfo.go @@ -29,9 +29,9 @@ func NewBagInfo(sid int32, plt string) *BagInfo { return &BagInfo{BagId: bson.NewObjectId(), SnId: sid, Platform: plt, BagItem: make(map[int32]*Item)} } -func GetBagInfo(sid int32, plt string) *BagInfo { +func GetBagInfo(sid int32, plt string) (*BagInfo, error) { if rpcCli == nil { - return nil + return nil, ErrRPClientNoConn } ret := &BagInfo{} args := &GetBagInfoArgs{ @@ -41,9 +41,9 @@ func GetBagInfo(sid int32, plt string) *BagInfo { err := rpcCli.CallWithTimeout("BagSvc.GetBagItem", args, ret, time.Second*30) if err != nil { logger.Logger.Error("GetBagInfo err:%v SnId:%v ", err, args.SnId) - return nil + return nil, err } - return ret + return ret, nil } func UpBagItem(args *BagInfo) error { diff --git a/model/config.go b/model/config.go index a2523ac..547b542 100644 --- a/model/config.go +++ b/model/config.go @@ -117,6 +117,8 @@ type AllConfig struct { ShopInfos map[int32]*ShopInfo // 商品id:商品信息 // 渠道开关 ChannelSwitch map[int32]*webapi.ChannelSwitchConfig + // 邀请活动 + *webapi.ActInviteConfig } type GlobalConfig struct { diff --git a/model/invitecode.go b/model/invitecode.go index 4ab55c8..0a7951d 100644 --- a/model/invitecode.go +++ b/model/invitecode.go @@ -24,6 +24,7 @@ type InviteSnIdRet struct { SnId int32 } +// GetSnIdByCode 根据邀请码获取被邀请人id func GetSnIdByCode(platform string, code string) (int32, error) { if rpcCli == nil { logger.Logger.Warnf("rpcCli is nil") @@ -46,82 +47,30 @@ func GetSnIdByCode(platform string, code string) (int32, error) { // InviteScore 积分记录 type InviteScore struct { - Id bson.ObjectId `bson:"_id"` - Platform string // 平台id - SnId int32 // 被邀请人id - InviteSnId int32 // 邀请人id - Tp int32 // 积分类型 common.InviteScoreType~ - Score int64 // 积分 - Ts int64 // 时间戳 - Money int64 // 充值金额 - WeekIndex int64 // 所在周 - MonthIndex int64 // 所在月 + Platform string // 平台id + SnId int32 // 被邀请人id + InviteSnId int32 // 邀请人id + Tp int32 // 积分类型 common.InviteScoreType ~ + Score int64 // 积分 + Ts int64 // 时间戳 + Money int64 // 充值金额 + Rate []int64 // 返佣比例 } -type InviteScoreReq struct { +// 邀请消息 +const EvtInvite = "evt_invite" // 绑定邀请人 worldsrv -> dbproxy +type EvtInviteMsg struct { + InviteScore + RechargeScore int64 // 充值成功积分 +} + +const EvtInviteAck = "evt_invite_ack" // 绑定邀请人 dbproxy -> worldsrv +type EvtInviteAckMsg struct { Platform string - SnId int32 -} - -type InviteScoreRet struct { - Score int64 // 包含扣积分 - ZScore int64 // 只包含大于0的积分 - Money int64 // 充值金额 -} - -// GetInviteScore 查询总积分 -// 下级玩家所有积分 -// 返回 包含扣积分,只包含大于0的积分,充值金额 -func GetInviteScore(plt string, snid int32) (int64, int64, int64, error) { - if rpcCli == nil { - logger.Logger.Warnf("rpcCli is nil") - return 0, 0, 0, errors.New("rpcCli is nil") - } - - req := &InviteScoreReq{ - Platform: plt, - SnId: snid, - } - ret := &InviteScoreRet{} - err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30) - if err != nil { - logger.Logger.Warnf("GetInviteScore err:%v", err) - return 0, 0, 0, err - } - - return ret.Score, ret.ZScore, ret.Money, err -} - -// SaveInviteScore 保存积分变更记录 -func SaveInviteScore(b *InviteScore) error { - if rpcCli == nil { - logger.Logger.Warnf("rpcCli is nil") - return errors.New("rpcCli is nil") - } - - ret := false - err := rpcCli.CallWithTimeout("BindScoreSvc.SaveInviteScore", b, &ret, time.Second*30) - if err != nil { - logger.Logger.Warnf("SaveInviteScore err:%v", err) - return err - } - return nil -} - -const EvtBindInvite = "evt_bind_invite" -const AckBindNum = "ack_bind_num" -const EvtInviteScore = "evt_invitescore" - -type BindInvite struct { - Platform string - SnId int32 - InviteSnId int32 - Ts int64 -} - -type BindNum struct { - SnId int32 - Num int32 + Snid int32 + Score int64 + Money int64 + Num int64 } type InviteLisArgs struct { @@ -141,6 +90,7 @@ type InviteListRet struct { List []*InviteInfo } +// GetInviteList 获取邀请人列表 func GetInviteList(platform string, snid int32) ([]*InviteInfo, error) { if rpcCli == nil { logger.Logger.Error("model.GetInviteList rpcCli == nil") @@ -159,3 +109,25 @@ func GetInviteList(platform string, snid int32) ([]*InviteInfo, error) { } return ret.List, nil } + +type RankInvite struct { + Platform string `bson:"-"` + SnId int32 + Num int64 + Score int64 + Ts int64 + Week int64 +} + +type LogInviteScore struct { + Id bson.ObjectId `bson:"_id"` + Platform string `bson:"-"` // 平台id + UpSnid int32 // 上级代理 + DownSnid int32 // 下级代理 + Level int32 // 代理层级 例如 1:DownSnid 是 UpSnid 的 1 级代理; 2: DownSnid 是 UpSnid 的 2 级代理 + Tp int32 // 返佣类型 + Rate int64 // 返佣比例 + Score int64 // 积分 + Money int64 // 充值金额 + Ts int64 // 时间戳 +} diff --git a/model/message.go b/model/message.go index b56eaa0..8894614 100644 --- a/model/message.go +++ b/model/message.go @@ -37,6 +37,7 @@ const ( MSGTYPE_MATCH_SHOPERETURN //积分商城兑换退还 MSGTYPE_ITEM //获取道具 MSGTYPE_RANK_REWARD //排行榜奖励 + MSGTYPE_ITEM_CHANGE //背包使用兑换 ) const ( diff --git a/model/player.go b/model/player.go index d3b13bd..b8636d3 100644 --- a/model/player.go +++ b/model/player.go @@ -104,6 +104,11 @@ const ( SystemFreeGive_GiveType_MailSystemGive //邮件系统赠送 SystemFreeGive_GiveType_RankMatch //段位奖励 SystemFreeGive_GiveType_BindTel // 绑定手机号奖励 + SystemFreeGive_GiveType_TaskInvite // 邀请任务 + SystemFreeGive_GiveType_TaskNewPlayer // 新手任务 + SystemFreeGive_GiveType_TaskAchievement // 成就任务 + SystemFreeGive_GiveType_TaskEveryDay // 每日任务 + SystemFreeGive_GiveType_TaskWeekActive // 周活跃奖励 ) const ( SystemFreeGive_CoinType_Coin int32 = iota //金币 @@ -449,25 +454,29 @@ type PlayerData struct { LotteryCount int32 //抽奖次数 InitLotteryStatus bool //抽奖初始化状态 Delete int // 是否删除 - InviteCode string // 邀请码 - InviteSnId int32 // 邀请人 - InviteScore int64 // 邀请积分 - OtherCode string // 绑定的邀请码 WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value:结束时间 WeekCardAward map[int32]bool // 周卡奖励领取状态false-未领取,true已领取 ItemRecExpireTime int64 // 记牌器到期时间 RequestAddFriend map[int32]int64 // 玩家申请好友记录 IsTakeExpireItem bool // 是否领取 LastChannel string // 最后包类型 + ICode string // 邀请码 + IScore int64 // 邀请积分 + PSnId int32 // 邀请人 + PCode string // 绑定的邀请码 + INum int64 // 邀请人数 + IMoney int64 // 邀请人充值金额 + IScoreTs time.Time // 邀请积分更新时间 } // 七日签到数据 type NewSignData struct { - SignIndex int32 //签到次数 - SignTickets int64 //签到时间 时间戳 - AddupIndex []int32 //领取累计奖励 - TurnplateIdx []int32 //领取转盘下标 - VideoTicket int64 // 领取视频奖励时间戳 + SignIndex int32 //签到次数 + SignTickets int64 //签到时间 时间戳 + AddupIndex []int32 //领取累计奖励 + TurnplateIdx []int32 //领取转盘下标 + VideoTicket int64 // 领取视频奖励时间戳 + Addup2Data map[int32]map[int32]int64 // 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) } @@ -477,9 +486,16 @@ type TaskData struct { } type PigBankData struct { - TakeTimes int32 - BankCoin int64 - DayBuyTimes int32 + TakeTimes int32 //一共领取次数 + BankCoin int64 //当前金币数量 + DayBuyTimes int32 //当天领取次数 +} + +// 钻石储存罐数据 +type DiamondBankData struct { + TakeTimes int32 //一共领取次数 + BankDiamond float64 //当前钻石数量 + DayBuyTimes int32 //当天领取次数 } type WelfareData struct { @@ -495,6 +511,8 @@ type WelfareData struct { Task map[int32]*TaskData // 任务 PhoneLotteryTask map[int32]*TaskData // 抽手机任务 PigBank *PigBankData // 存钱罐 + DiamondBank *DiamondBankData // 钻石储存罐 + } func NewWelfareData() *WelfareData { @@ -504,6 +522,7 @@ func NewWelfareData() *WelfareData { Task: make(map[int32]*TaskData), PhoneLotteryTask: make(map[int32]*TaskData), PigBank: &PigBankData{}, + DiamondBank: &DiamondBankData{}, } } @@ -655,9 +674,9 @@ func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { pdfw.VipExp = param.VipExp pdfw.ShopId = common.IntSliceToInt32(param.ShopID) pdfw.Delete = int64(param.Delete) - pdfw.InviteCode = param.InviteCode - pdfw.InviteSnId = param.InviteSnId - pdfw.InviteScore = param.InviteScore + pdfw.InviteCode = param.ICode + pdfw.InviteSnId = param.PSnId + pdfw.InviteScore = param.IScore pdfw.Channel = param.Channel pdfw.LastChannel = param.LastChannel for _, v := range param.Items { @@ -1061,6 +1080,7 @@ func GetPlayerDataBySnId(plt string, snid int32, correctData, createIfNotExist b ret.Pd.CreateTime = ret.Pd.CreateTime.Local() ret.Pd.LastLoginTime = ret.Pd.LastLoginTime.Local() ret.Pd.LastLogoutTime = ret.Pd.LastLogoutTime.Local() + ret.Pd.IScoreTs = ret.Pd.IScoreTs.Local() return ret.Pd, ret.IsNew } @@ -2685,23 +2705,6 @@ func GetPlayerInviteSnid(plt string, snid int32) (int32, error) { return ret, nil } -func GetInviteNum(plt string, snid int32) (int32, error) { - if rpcCli == nil { - return 0, errors.New("rpcCli is nil") - } - args := &PlayerIsExistBySnIdArgs{ - Plt: plt, - SnId: snid, - } - var ret int32 - err := rpcCli.CallWithTimeout("PlayerDataSvc.GetInviteNum", args, &ret, time.Second*30) - if err != nil { - logger.Logger.Error("model.GetPlayerInviteSnid error ", err) - return 0, err - } - return ret, nil -} - // 所有游戏都要加上当天统计数据 func (this *PlayerData) GetDaliyGameData(id int) (*PlayerGameStatics, *PlayerGameStatics) { gameId := strconv.Itoa(id) @@ -2938,3 +2941,31 @@ func (this *PlayerData) GetRoleId() int32 { } return common.DefaultRoleId } + +type BindArgs struct { + Platform string + PSnId, SnId int32 + PCode string +} + +func BindInviteSnId(platform string, snId, pSnId int32, code string) error { + if rpcCli == nil { + return fmt.Errorf("db may be close") + } + var args = &BindArgs{ + Platform: platform, + PSnId: pSnId, + SnId: snId, + PCode: code, + } + var ret bool + err := rpcCli.CallWithTimeout("PlayerDataSvc.BindInviteSnId", args, &ret, time.Second*30) + if err != nil { + logger.Logger.Warnf("BindInviteSnId error:%v", err) + return err + } + if ret { + return nil + } + return errors.New("bind error") +} diff --git a/model/rank.go b/model/rank.go index 69841e2..95213d0 100644 --- a/model/rank.go +++ b/model/rank.go @@ -131,11 +131,11 @@ type PlayerRankInvite struct { type FindPlayerRankInviteListArgs struct { Platform string - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 } type FindPlayerRankInviteListReply struct { - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 List []*PlayerRankInvite } @@ -156,12 +156,12 @@ func FindPlayerRankInviteList(args *FindPlayerRankInviteListArgs) (*FindPlayerRa type FindPlayerRankInviteScoreArgs struct { Platform string - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 SnId int32 } type FindPlayerRankInviteScoreReply struct { - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 Data PlayerRankInvite } diff --git a/mq/keyconf.go b/mq/keyconf.go index 827af8b..7183046 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -5,7 +5,6 @@ const ( BackBankrupt = "log_bankrupt" BackClientLog = "log_clientlog_mysql" BackGameRecord = "evt_gamerec" - BackInviteScore = "evt_invitescore" BackLogin = "evt_login" BackOnline = "evt_online" BackPhoneLottery = "evt_phonelottery" diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go index 42b924d..c6c962f 100644 --- a/protocol/bag/bag.pb.go +++ b/protocol/bag/bag.pb.go @@ -31,6 +31,7 @@ const ( OpResultCode_OPRC_DbErr OpResultCode = 4 //存储出错 OpResultCode_OPRC_BagFull OpResultCode = 5 //背包已满 OpResultCode_OPRC_NotPlayer OpResultCode = 6 //找不到玩家 + OpResultCode_OPRC_NotChange OpResultCode = 7 //不可兑换 ) // Enum value maps for OpResultCode. @@ -43,6 +44,7 @@ var ( 4: "OPRC_DbErr", 5: "OPRC_BagFull", 6: "OPRC_NotPlayer", + 7: "OPRC_NotChange", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, @@ -52,6 +54,7 @@ var ( "OPRC_DbErr": 4, "OPRC_BagFull": 5, "OPRC_NotPlayer": 6, + "OPRC_NotChange": 7, } ) @@ -86,11 +89,12 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) { type SPacketID int32 const ( - SPacketID_PACKET_BAG_ZERO SPacketID = 0 // 弃用消息号 - SPacketID_PACKET_ALL_BAG_INFO SPacketID = 2530 //请求背包数据 - SPacketID_PACKET_ALL_BAG_USE SPacketID = 2531 //使用背包道具 - SPacketID_PACKET_SC_SYNCBAGDATA SPacketID = 2532 //背包数据更新 - SPacketID_PACKET_ALL_BAG_END SPacketID = 2549 //最大消息号 + SPacketID_PACKET_BAG_ZERO SPacketID = 0 // 弃用消息号 + SPacketID_PACKET_ALL_BAG_INFO SPacketID = 2530 //请求背包数据 + SPacketID_PACKET_ALL_BAG_USE SPacketID = 2531 //使用背包道具 + SPacketID_PACKET_SC_SYNCBAGDATA SPacketID = 2532 //背包数据更新 + SPacketID_PACKET_SC_ITEM_EXCHANGE_RES SPacketID = 2533 //背包道具兑换返回 + SPacketID_PACKET_ALL_BAG_END SPacketID = 2549 //最大消息号 //3000~3099 SPacketID_PACKET_PropExchange SPacketID = 3000 // 道具兑换 SPacketID_PACKET_ExchangeList SPacketID = 3001 // 兑换列表 @@ -103,18 +107,20 @@ var ( 2530: "PACKET_ALL_BAG_INFO", 2531: "PACKET_ALL_BAG_USE", 2532: "PACKET_SC_SYNCBAGDATA", + 2533: "PACKET_SC_ITEM_EXCHANGE_RES", 2549: "PACKET_ALL_BAG_END", 3000: "PACKET_PropExchange", 3001: "PACKET_ExchangeList", } SPacketID_value = map[string]int32{ - "PACKET_BAG_ZERO": 0, - "PACKET_ALL_BAG_INFO": 2530, - "PACKET_ALL_BAG_USE": 2531, - "PACKET_SC_SYNCBAGDATA": 2532, - "PACKET_ALL_BAG_END": 2549, - "PACKET_PropExchange": 3000, - "PACKET_ExchangeList": 3001, + "PACKET_BAG_ZERO": 0, + "PACKET_ALL_BAG_INFO": 2530, + "PACKET_ALL_BAG_USE": 2531, + "PACKET_SC_SYNCBAGDATA": 2532, + "PACKET_SC_ITEM_EXCHANGE_RES": 2533, + "PACKET_ALL_BAG_END": 2549, + "PACKET_PropExchange": 3000, + "PACKET_ExchangeList": 3001, } ) @@ -351,10 +357,11 @@ type CSUpBagInfo struct { ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //物品ID ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //物品数量 - Opt int32 `protobuf:"varint,3,opt,name=Opt,proto3" json:"Opt,omitempty"` //操作 0.使用 1.赠送 2.出售 + Opt int32 `protobuf:"varint,3,opt,name=Opt,proto3" json:"Opt,omitempty"` //操作 0.使用 1.赠送 2.出售 3.兑换 AcceptSnId int32 `protobuf:"varint,4,opt,name=AcceptSnId,proto3" json:"AcceptSnId,omitempty"` //被赠送玩家id NowEffect int32 `protobuf:"varint,5,opt,name=NowEffect,proto3" json:"NowEffect,omitempty"` //0.竖版 1.横版 ShowId int64 `protobuf:"varint,6,opt,name=ShowId,proto3" json:"ShowId,omitempty"` // 邮件显示位置 0 所有大厅都显示 1 主大厅显示 2 len大厅显示 4 fish大厅显示 + CardType int32 `protobuf:"varint,7,opt,name=CardType,proto3" json:"CardType,omitempty"` //类型 } func (x *CSUpBagInfo) Reset() { @@ -431,6 +438,13 @@ func (x *CSUpBagInfo) GetShowId() int64 { return 0 } +func (x *CSUpBagInfo) GetCardType() int32 { + if x != nil { + return x.CardType + } + return 0 +} + //PACKET_ALL_BAG_USE type SCUpBagInfo struct { state protoimpl.MessageState @@ -521,6 +535,55 @@ func (x *SCUpBagInfo) GetInfos() []*ItemInfo { return nil } +//背包使用兑换返回结果 +//PACKET_SC_ITEM_EXCHANGE_RES +type SCItemExChangeRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetCode OpResultCode `protobuf:"varint,1,opt,name=RetCode,proto3,enum=bag.OpResultCode" json:"RetCode,omitempty"` +} + +func (x *SCItemExChangeRes) Reset() { + *x = SCItemExChangeRes{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCItemExChangeRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCItemExChangeRes) ProtoMessage() {} + +func (x *SCItemExChangeRes) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCItemExChangeRes.ProtoReflect.Descriptor instead. +func (*SCItemExChangeRes) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{5} +} + +func (x *SCItemExChangeRes) GetRetCode() OpResultCode { + if x != nil { + return x.RetCode + } + return OpResultCode_OPRC_Sucess +} + //PACKET_SC_SYNCBAGDATA type SCSyncBagData struct { state protoimpl.MessageState @@ -533,7 +596,7 @@ type SCSyncBagData struct { func (x *SCSyncBagData) Reset() { *x = SCSyncBagData{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[5] + mi := &file_bag_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -546,7 +609,7 @@ func (x *SCSyncBagData) String() string { func (*SCSyncBagData) ProtoMessage() {} func (x *SCSyncBagData) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[5] + mi := &file_bag_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -559,7 +622,7 @@ func (x *SCSyncBagData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCSyncBagData.ProtoReflect.Descriptor instead. func (*SCSyncBagData) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{5} + return file_bag_proto_rawDescGZIP(), []int{6} } func (x *SCSyncBagData) GetInfos() []*ItemInfo { @@ -581,7 +644,7 @@ type PropInfo struct { func (x *PropInfo) Reset() { *x = PropInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[6] + mi := &file_bag_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -594,7 +657,7 @@ func (x *PropInfo) String() string { func (*PropInfo) ProtoMessage() {} func (x *PropInfo) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[6] + mi := &file_bag_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -607,7 +670,7 @@ func (x *PropInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PropInfo.ProtoReflect.Descriptor instead. func (*PropInfo) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{6} + return file_bag_proto_rawDescGZIP(), []int{7} } func (x *PropInfo) GetItemId() int32 { @@ -636,7 +699,7 @@ type CSPropExchange struct { func (x *CSPropExchange) Reset() { *x = CSPropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[7] + mi := &file_bag_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -649,7 +712,7 @@ func (x *CSPropExchange) String() string { func (*CSPropExchange) ProtoMessage() {} func (x *CSPropExchange) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[7] + mi := &file_bag_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -662,7 +725,7 @@ func (x *CSPropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPropExchange.ProtoReflect.Descriptor instead. func (*CSPropExchange) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{7} + return file_bag_proto_rawDescGZIP(), []int{8} } func (x *CSPropExchange) GetId() int32 { @@ -685,7 +748,7 @@ type SCPropExchange struct { func (x *SCPropExchange) Reset() { *x = SCPropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[8] + mi := &file_bag_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -698,7 +761,7 @@ func (x *SCPropExchange) String() string { func (*SCPropExchange) ProtoMessage() {} func (x *SCPropExchange) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[8] + mi := &file_bag_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -711,7 +774,7 @@ func (x *SCPropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPropExchange.ProtoReflect.Descriptor instead. func (*SCPropExchange) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{8} + return file_bag_proto_rawDescGZIP(), []int{9} } func (x *SCPropExchange) GetRetCode() OpResultCode { @@ -748,7 +811,7 @@ type ExchangeInfo struct { func (x *ExchangeInfo) Reset() { *x = ExchangeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[9] + mi := &file_bag_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -761,7 +824,7 @@ func (x *ExchangeInfo) String() string { func (*ExchangeInfo) ProtoMessage() {} func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[9] + mi := &file_bag_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -774,7 +837,7 @@ func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExchangeInfo.ProtoReflect.Descriptor instead. func (*ExchangeInfo) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{9} + return file_bag_proto_rawDescGZIP(), []int{10} } func (x *ExchangeInfo) GetId() int32 { @@ -810,7 +873,7 @@ type CSExchangeList struct { func (x *CSExchangeList) Reset() { *x = CSExchangeList{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[10] + mi := &file_bag_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -823,7 +886,7 @@ func (x *CSExchangeList) String() string { func (*CSExchangeList) ProtoMessage() {} func (x *CSExchangeList) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[10] + mi := &file_bag_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -836,7 +899,7 @@ func (x *CSExchangeList) ProtoReflect() protoreflect.Message { // Deprecated: Use CSExchangeList.ProtoReflect.Descriptor instead. func (*CSExchangeList) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{10} + return file_bag_proto_rawDescGZIP(), []int{11} } func (x *CSExchangeList) GetTp() int32 { @@ -858,7 +921,7 @@ type SCExchangeList struct { func (x *SCExchangeList) Reset() { *x = SCExchangeList{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[11] + mi := &file_bag_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -871,7 +934,7 @@ func (x *SCExchangeList) String() string { func (*SCExchangeList) ProtoMessage() {} func (x *SCExchangeList) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[11] + mi := &file_bag_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -884,7 +947,7 @@ func (x *SCExchangeList) ProtoReflect() protoreflect.Message { // Deprecated: Use SCExchangeList.ProtoReflect.Descriptor instead. func (*SCExchangeList) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{11} + return file_bag_proto_rawDescGZIP(), []int{12} } func (x *SCExchangeList) GetInfos() []*ExchangeInfo { @@ -922,7 +985,7 @@ var file_bag_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x22, 0xa7, 0x01, 0x0a, 0x0b, 0x43, + 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x43, 0x53, 0x55, 0x70, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, @@ -933,76 +996,85 @@ var file_bag_proto_rawDesc = []byte{ 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x68, - 0x6f, 0x77, 0x49, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x55, 0x70, 0x42, 0x61, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x23, 0x0a, - 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, - 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, - 0x6f, 0x73, 0x22, 0x34, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, - 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, - 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, - 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, - 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, - 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, - 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, - 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, - 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, - 0x67, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x54, 0x70, 0x2a, 0x85, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, - 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x55, 0x73, 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x49, 0x64, 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x44, 0x62, 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x42, 0x61, 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x2a, 0xbc, 0x01, - 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, - 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, 0x53, 0x45, - 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, 0x13, 0x12, - 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, - 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, - 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, 0x42, 0x23, 0x5a, 0x21, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x62, 0x61, - 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x55, 0x70, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, + 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x40, + 0x0a, 0x11, 0x53, 0x43, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x22, 0x34, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, + 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x72, 0x6f, + 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, + 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x0c, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, 0x61, 0x69, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, + 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x61, 0x69, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x54, 0x70, 0x2a, 0x99, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, + 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, + 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, + 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, + 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, + 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, + 0xde, 0x01, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, + 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, + 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, + 0x53, 0x45, 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, + 0x13, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, + 0x10, 0xe5, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, + 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, + 0x42, 0x23, 0x5a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1018,40 +1090,42 @@ func file_bag_proto_rawDescGZIP() []byte { } var file_bag_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_bag_proto_goTypes = []interface{}{ - (OpResultCode)(0), // 0: bag.OpResultCode - (SPacketID)(0), // 1: bag.SPacketID - (*ItemInfo)(nil), // 2: bag.ItemInfo - (*CSBagInfo)(nil), // 3: bag.CSBagInfo - (*SCBagInfo)(nil), // 4: bag.SCBagInfo - (*CSUpBagInfo)(nil), // 5: bag.CSUpBagInfo - (*SCUpBagInfo)(nil), // 6: bag.SCUpBagInfo - (*SCSyncBagData)(nil), // 7: bag.SCSyncBagData - (*PropInfo)(nil), // 8: bag.PropInfo - (*CSPropExchange)(nil), // 9: bag.CSPropExchange - (*SCPropExchange)(nil), // 10: bag.SCPropExchange - (*ExchangeInfo)(nil), // 11: bag.ExchangeInfo - (*CSExchangeList)(nil), // 12: bag.CSExchangeList - (*SCExchangeList)(nil), // 13: bag.SCExchangeList + (OpResultCode)(0), // 0: bag.OpResultCode + (SPacketID)(0), // 1: bag.SPacketID + (*ItemInfo)(nil), // 2: bag.ItemInfo + (*CSBagInfo)(nil), // 3: bag.CSBagInfo + (*SCBagInfo)(nil), // 4: bag.SCBagInfo + (*CSUpBagInfo)(nil), // 5: bag.CSUpBagInfo + (*SCUpBagInfo)(nil), // 6: bag.SCUpBagInfo + (*SCItemExChangeRes)(nil), // 7: bag.SCItemExChangeRes + (*SCSyncBagData)(nil), // 8: bag.SCSyncBagData + (*PropInfo)(nil), // 9: bag.PropInfo + (*CSPropExchange)(nil), // 10: bag.CSPropExchange + (*SCPropExchange)(nil), // 11: bag.SCPropExchange + (*ExchangeInfo)(nil), // 12: bag.ExchangeInfo + (*CSExchangeList)(nil), // 13: bag.CSExchangeList + (*SCExchangeList)(nil), // 14: bag.SCExchangeList } var file_bag_proto_depIdxs = []int32{ 0, // 0: bag.SCBagInfo.RetCode:type_name -> bag.OpResultCode 2, // 1: bag.SCBagInfo.Infos:type_name -> bag.ItemInfo 0, // 2: bag.SCUpBagInfo.RetCode:type_name -> bag.OpResultCode 2, // 3: bag.SCUpBagInfo.Infos:type_name -> bag.ItemInfo - 2, // 4: bag.SCSyncBagData.Infos:type_name -> bag.ItemInfo - 0, // 5: bag.SCPropExchange.RetCode:type_name -> bag.OpResultCode - 8, // 6: bag.SCPropExchange.Items:type_name -> bag.PropInfo - 8, // 7: bag.SCPropExchange.RemainItems:type_name -> bag.PropInfo - 8, // 8: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo - 8, // 9: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo - 11, // 10: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 0, // 4: bag.SCItemExChangeRes.RetCode:type_name -> bag.OpResultCode + 2, // 5: bag.SCSyncBagData.Infos:type_name -> bag.ItemInfo + 0, // 6: bag.SCPropExchange.RetCode:type_name -> bag.OpResultCode + 9, // 7: bag.SCPropExchange.Items:type_name -> bag.PropInfo + 9, // 8: bag.SCPropExchange.RemainItems:type_name -> bag.PropInfo + 9, // 9: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo + 9, // 10: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo + 12, // 11: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_bag_proto_init() } @@ -1121,7 +1195,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCSyncBagData); i { + switch v := v.(*SCItemExChangeRes); i { case 0: return &v.state case 1: @@ -1133,7 +1207,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropInfo); i { + switch v := v.(*SCSyncBagData); i { case 0: return &v.state case 1: @@ -1145,7 +1219,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPropExchange); i { + switch v := v.(*PropInfo); i { case 0: return &v.state case 1: @@ -1157,7 +1231,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPropExchange); i { + switch v := v.(*CSPropExchange); i { case 0: return &v.state case 1: @@ -1169,7 +1243,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeInfo); i { + switch v := v.(*SCPropExchange); i { case 0: return &v.state case 1: @@ -1181,7 +1255,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSExchangeList); i { + switch v := v.(*ExchangeInfo); i { case 0: return &v.state case 1: @@ -1193,6 +1267,18 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSExchangeList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCExchangeList); i { case 0: return &v.state @@ -1211,7 +1297,7 @@ func file_bag_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bag_proto_rawDesc, NumEnums: 2, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/bag/bag.proto b/protocol/bag/bag.proto index e3678bf..94da3c6 100644 --- a/protocol/bag/bag.proto +++ b/protocol/bag/bag.proto @@ -10,6 +10,7 @@ enum OpResultCode { OPRC_DbErr = 4; //存储出错 OPRC_BagFull = 5; //背包已满 OPRC_NotPlayer = 6; //找不到玩家 + OPRC_NotChange = 7; //不可兑换 } // 商城 enum SPacketID { @@ -17,6 +18,7 @@ enum SPacketID { PACKET_ALL_BAG_INFO = 2530; //请求背包数据 PACKET_ALL_BAG_USE = 2531; //使用背包道具 PACKET_SC_SYNCBAGDATA = 2532;//背包数据更新 + PACKET_SC_ITEM_EXCHANGE_RES = 2533;//背包道具兑换返回 PACKET_ALL_BAG_END = 2549; //最大消息号 //3000~3099 PACKET_PropExchange = 3000; // 道具兑换 @@ -59,10 +61,11 @@ message SCBagInfo { message CSUpBagInfo { int32 ItemId = 1;//物品ID int32 ItemNum = 2;//物品数量 - int32 Opt = 3;//操作 0.使用 1.赠送 2.出售 + int32 Opt = 3;//操作 0.使用 1.赠送 2.出售 3.兑换 int32 AcceptSnId = 4;//被赠送玩家id int32 NowEffect = 5;//0.竖版 1.横版 int64 ShowId = 6;// 邮件显示位置 0 所有大厅都显示 1 主大厅显示 2 len大厅显示 4 fish大厅显示 + int32 CardType = 7;//类型 } //PACKET_ALL_BAG_USE message SCUpBagInfo { @@ -75,6 +78,13 @@ message SCUpBagInfo { //使用道具获得的 repeated ItemInfo Infos = 6;// 物品信息 } +//背包使用兑换返回结果 +//PACKET_SC_ITEM_EXCHANGE_RES +message SCItemExChangeRes{ + OpResultCode RetCode = 1; +} + + //PACKET_SC_SYNCBAGDATA message SCSyncBagData{ repeated ItemInfo Infos = 1;// 物品信息 diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index e5dc113..ec978fe 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -377,6 +377,8 @@ const ( PlayerPacketID_PACKET_SCPigBankCoin PlayerPacketID = 2824 //存钱罐金币数量 PlayerPacketID_PACKET_CSExchangeChannel PlayerPacketID = 2825 // 开启兑换的渠道 PlayerPacketID_PACKET_SCExchangeChannel PlayerPacketID = 2826 // 开启兑换的渠道 + PlayerPacketID_PACKET_CSSMSConfig PlayerPacketID = 2827 //获取运营商配置 + PlayerPacketID_PACKET_SCSMSConfig PlayerPacketID = 2828 //返回运营商配置 ) // Enum value maps for PlayerPacketID. @@ -507,6 +509,8 @@ var ( 2824: "PACKET_SCPigBankCoin", 2825: "PACKET_CSExchangeChannel", 2826: "PACKET_SCExchangeChannel", + 2827: "PACKET_CSSMSConfig", + 2828: "PACKET_SCSMSConfig", } PlayerPacketID_value = map[string]int32{ "PACKET_PLAYERPACKET_ZERO": 0, @@ -634,6 +638,8 @@ var ( "PACKET_SCPigBankCoin": 2824, "PACKET_CSExchangeChannel": 2825, "PACKET_SCExchangeChannel": 2826, + "PACKET_CSSMSConfig": 2827, + "PACKET_SCSMSConfig": 2828, } ) @@ -9465,7 +9471,7 @@ type ChannelSwitch struct { unknownFields protoimpl.UnknownFields OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 - Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 + Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 } func (x *ChannelSwitch) Reset() { @@ -9562,6 +9568,149 @@ func (x *SCExchangeChannel) GetDatas() []*ChannelSwitch { return nil } +//请求运营商配置 +//PACKET_CSSMSConfig +type CSSMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSSMSConfig) Reset() { + *x = CSSMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_player_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSSMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSSMSConfig) ProtoMessage() {} + +func (x *CSSMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_player_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSSMSConfig.ProtoReflect.Descriptor instead. +func (*CSSMSConfig) Descriptor() ([]byte, []int) { + return file_player_proto_rawDescGZIP(), []int{135} +} + +//PACKET_SCSMSConfig +type SCSMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info []*SMSInfo `protobuf:"bytes,1,rep,name=Info,proto3" json:"Info,omitempty"` +} + +func (x *SCSMSConfig) Reset() { + *x = SCSMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_player_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCSMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCSMSConfig) ProtoMessage() {} + +func (x *SCSMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_player_proto_msgTypes[136] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCSMSConfig.ProtoReflect.Descriptor instead. +func (*SCSMSConfig) Descriptor() ([]byte, []int) { + return file_player_proto_rawDescGZIP(), []int{136} +} + +func (x *SCSMSConfig) GetInfo() []*SMSInfo { + if x != nil { + return x.Info + } + return nil +} + +type SMSInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SmsName string `protobuf:"bytes,2,opt,name=SmsName,proto3" json:"SmsName,omitempty"` +} + +func (x *SMSInfo) Reset() { + *x = SMSInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_player_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SMSInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SMSInfo) ProtoMessage() {} + +func (x *SMSInfo) ProtoReflect() protoreflect.Message { + mi := &file_player_proto_msgTypes[137] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SMSInfo.ProtoReflect.Descriptor instead. +func (*SMSInfo) Descriptor() ([]byte, []int) { + return file_player_proto_rawDescGZIP(), []int{137} +} + +func (x *SMSInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SMSInfo) GetSmsName() string { + if x != nil { + return x.SmsName + } + return "" +} + var File_player_proto protoreflect.FileDescriptor var file_player_proto_rawDesc = []byte{ @@ -10538,350 +10687,361 @@ var file_player_proto_rawDesc = []byte{ 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x2a, 0xef, - 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, - 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0xe8, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x61, 0x6d, 0x65, 0x10, 0xef, - 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xf1, 0x07, 0x12, - 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x10, 0xf5, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, - 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x10, 0x94, 0x08, 0x12, 0x19, - 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x70, 0x70, 0x56, 0x65, - 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x10, 0x95, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, - 0xa0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, - 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0xa4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xa5, 0x08, 0x12, - 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, - 0x6c, 0x79, 0x10, 0xa6, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x63, - 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa7, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x53, 0x65, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa8, 0x08, 0x12, 0x12, - 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0xa9, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaa, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xab, 0x08, 0x12, 0x14, 0x0a, 0x0f, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, - 0xac, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x61, 0x66, 0x65, 0x42, - 0x6f, 0x78, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0xae, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x49, 0x73, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xaf, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, - 0xb0, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, - 0x73, 0x54, 0x6f, 0x6f, 0x4c, 0x65, 0x6e, 0x10, 0xb1, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x10, 0xb2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, - 0x49, 0x73, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xbb, 0x08, 0x12, 0x16, 0x0a, 0x11, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x10, 0xbc, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x61, 0x64, - 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x10, - 0xc2, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xc3, 0x08, 0x12, - 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, - 0x6e, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xc4, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x42, 0x69, 0x6e, - 0x64, 0x10, 0xc5, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x70, 0x72, - 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, - 0x70, 0x10, 0xc6, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x10, 0xc7, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, - 0x63, 0x6b, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0xd0, - 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x6f, 0x72, 0x10, 0xd4, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x4e, 0x6f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x10, 0xd5, 0x08, 0x12, 0x16, 0x0a, - 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x10, 0xd6, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x48, 0x61, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xd7, 0x08, - 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x10, 0xd8, 0x08, 0x12, 0x28, - 0x0a, 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6c, - 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd3, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd5, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, - 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd6, 0x0f, 0x12, 0x21, - 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x61, 0x66, 0x65, 0x62, 0x6f, 0x78, 0x5f, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd7, - 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, - 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd8, 0x0f, 0x12, - 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, - 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd9, 0x0f, - 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, - 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xda, - 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, - 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdb, - 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, - 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, - 0x6c, 0x10, 0xdc, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, - 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, - 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdd, 0x0f, 0x12, 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xde, 0x0f, 0x12, 0x23, 0x0a, 0x1e, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, - 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdf, - 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, - 0x69, 0x70, 0x61, 0x79, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0xe0, 0x0f, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, - 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe1, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x6f, 0x6f, 0x4d, 0x61, - 0x6e, 0x79, 0x52, 0x65, 0x67, 0x10, 0xe2, 0x0f, 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe3, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe4, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x5f, 0x4e, 0x6f, 0x74, 0x53, - 0x61, 0x6d, 0x65, 0x10, 0xe5, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, - 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x4e, 0x61, - 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe6, 0x0f, 0x12, - 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x10, 0xb4, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, - 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xb5, 0x10, 0x12, - 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x54, 0x69, 0x6d, 0x65, - 0x45, 0x72, 0x72, 0x10, 0xb6, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, - 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x10, 0xb7, 0x10, 0x12, 0x26, 0x0a, - 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, - 0x75, 0x48, 0x61, 0x64, 0x42, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x10, 0xd9, 0x36, 0x12, 0x29, 0x0a, 0x24, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, - 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x61, 0x6e, 0x6b, - 0x65, 0x72, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, - 0x2a, 0xc6, 0x1c, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x4c, - 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, - 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb4, 0x10, 0x12, 0x19, 0x0a, 0x14, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x44, 0x41, 0x54, 0x41, 0x10, 0xb5, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x41, 0x59, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0xb6, - 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, - 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb7, - 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, - 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb8, - 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, - 0xb9, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x45, 0x58, 0x10, 0xba, 0x10, 0x12, - 0x14, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4d, 0x43, - 0x4d, 0x44, 0x10, 0xbb, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x42, 0x4f, 0x54, 0x43, 0x48, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, - 0xbc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x57, 0x45, 0x43, 0x48, 0x41, 0x54, 0x4e, 0x55, 0x4d, 0x42, - 0x45, 0x52, 0x10, 0xbd, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x57, 0x45, 0x43, 0x48, 0x41, 0x54, 0x4e, - 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0xbe, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, 0xbf, - 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, - 0x55, 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, 0xc0, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, - 0x10, 0xc1, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xc2, 0x10, 0x12, 0x19, 0x0a, 0x14, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x50, 0x52, 0x45, 0x41, 0x44, - 0x42, 0x49, 0x4e, 0x44, 0x10, 0xc3, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x50, 0x52, 0x45, 0x41, 0x44, 0x42, 0x49, 0x4e, 0x44, 0x10, - 0xc4, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x47, 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc7, - 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, - 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc8, 0x10, - 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, - 0x53, 0x54, 0x4f, 0x4d, 0x4e, 0x45, 0x57, 0x4d, 0x53, 0x47, 0x10, 0xc9, 0x10, 0x12, 0x1e, 0x0a, - 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, - 0x4d, 0x4e, 0x45, 0x57, 0x4d, 0x53, 0x47, 0x41, 0x43, 0x4b, 0x10, 0xca, 0x10, 0x12, 0x15, 0x0a, - 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x52, 0x56, 0x4d, 0x53, - 0x47, 0x10, 0xcb, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, - 0x4e, 0x10, 0xcc, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, - 0x4e, 0x10, 0xcd, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, - 0x41, 0x10, 0xce, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, - 0x41, 0x10, 0xcf, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd0, - 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, - 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x10, 0xd1, 0x10, 0x12, 0x1b, - 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, - 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x10, 0xd2, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, - 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xd3, 0x10, 0x12, 0x20, 0x0a, - 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, - 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd4, 0x10, 0x12, - 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x65, 0x74, - 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd5, - 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, - 0x61, 0x79, 0x41, 0x63, 0x74, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xd6, 0x10, 0x12, 0x19, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x47, 0x45, 0x4e, 0x49, 0x43, 0x4b, 0x10, 0xdc, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x49, 0x43, - 0x4b, 0x10, 0xdd, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0xde, 0x10, 0x12, - 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0xdf, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x45, - 0x58, 0x10, 0xe0, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x45, 0x58, 0x10, 0xe1, 0x10, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x47, 0x52, - 0x41, 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xe2, 0x10, 0x12, 0x1d, 0x0a, - 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, - 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0xe3, 0x10, 0x12, 0x19, 0x0a, 0x14, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x41, 0x4c, - 0x49, 0x50, 0x41, 0x59, 0x10, 0xe4, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x41, 0x4c, 0x49, 0x50, 0x41, 0x59, 0x10, - 0xe5, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, 0x4b, 0x10, 0xe6, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, - 0x4b, 0x10, 0xe7, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe8, - 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe9, 0x10, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x47, 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0xea, 0x10, 0x12, 0x1d, 0x0a, - 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, - 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, 0xeb, 0x10, 0x12, 0x1f, 0x0a, 0x1a, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xec, 0x10, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xed, 0x10, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, - 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xee, 0x10, 0x12, 0x1d, 0x0a, - 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, - 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xef, 0x10, 0x12, 0x20, 0x0a, 0x1b, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x41, 0x46, - 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x10, 0x12, 0x20, - 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x53, - 0x41, 0x46, 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x10, - 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, - 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0xf2, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, - 0xf3, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x48, 0x45, 0x41, 0x44, 0x4f, 0x55, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xf4, 0x10, 0x12, 0x1a, - 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x44, - 0x4f, 0x55, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xf5, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x4f, - 0x44, 0x45, 0x10, 0xf6, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xf7, 0x10, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, - 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, 0x53, 0x10, - 0xf8, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, - 0x53, 0x10, 0xf9, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x50, - 0x41, 0x53, 0x53, 0x10, 0xfa, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, - 0x4d, 0x50, 0x41, 0x53, 0x53, 0x10, 0xfb, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x56, 0x45, - 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x49, 0x4d, 0x41, 0x47, - 0x45, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfd, 0x10, 0x12, 0x22, - 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, - 0x4c, 0x49, 0x44, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, - 0xfe, 0x10, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x47, 0x45, 0x54, 0x53, 0x4c, 0x49, 0x44, 0x45, 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, - 0x4f, 0x44, 0x45, 0x10, 0xff, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x4f, 0x53, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, 0x54, - 0x41, 0x42, 0x4c, 0x45, 0x10, 0x80, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x4f, 0x53, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, - 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x81, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x10, 0x82, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x83, 0x11, - 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, - 0x54, 0x44, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x84, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x44, 0x41, 0x54, 0x41, - 0x4c, 0x4f, 0x47, 0x10, 0x85, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, - 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0x86, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x46, - 0x4c, 0x41, 0x47, 0x10, 0x87, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0x88, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x45, 0x53, 0x48, 0x49, 0x50, - 0x54, 0x49, 0x50, 0x53, 0x10, 0x89, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x8a, 0x11, - 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x41, 0x4d, - 0x45, 0x45, 0x58, 0x44, 0x52, 0x4f, 0x50, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x8b, 0x11, 0x12, - 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, - 0x42, 0x55, 0x59, 0x10, 0x8c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x42, 0x55, 0x59, 0x10, 0x8d, 0x11, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x56, - 0x49, 0x50, 0x47, 0x49, 0x46, 0x54, 0x10, 0x8e, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x56, 0x49, 0x50, 0x47, 0x49, - 0x46, 0x54, 0x10, 0x8f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x90, 0x11, 0x12, 0x16, 0x0a, - 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, - 0x46, 0x4f, 0x10, 0x91, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x53, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, - 0x92, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x10, 0x93, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x10, 0x94, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x50, 0x41, 0x59, 0x47, 0x4f, 0x4f, 0x44, 0x53, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x95, - 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, - 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x96, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, - 0x4f, 0x47, 0x10, 0x97, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x98, 0x11, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x54, - 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x99, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x10, 0x9a, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x10, 0x9b, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x10, 0x9c, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x10, 0xf1, 0x15, 0x12, 0x16, 0x0a, 0x11, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, - 0x6c, 0x10, 0xf2, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, - 0xf3, 0x15, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x10, 0xf4, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, - 0xf5, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf6, 0x15, 0x12, - 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf7, 0x15, 0x12, 0x15, 0x0a, 0x10, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, - 0x10, 0xf8, 0x15, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x10, 0xf9, 0x15, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x10, 0xfa, 0x15, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfb, 0x15, - 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6c, - 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfc, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfd, 0x15, - 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x61, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfe, 0x15, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x61, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xff, 0x15, 0x12, 0x1f, 0x0a, 0x1a, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x80, 0x16, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x81, 0x16, 0x12, 0x1b, - 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x82, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x83, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x84, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x41, 0x44, 0x56, 0x10, 0x85, 0x16, 0x12, 0x11, 0x0a, - 0x0c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x41, 0x44, 0x56, 0x10, 0x86, 0x16, - 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x65, 0x74, - 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x79, 0x10, 0x87, 0x16, - 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, - 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x88, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x89, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x8a, 0x16, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x0d, + 0x0a, 0x0b, 0x43, 0x53, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x32, 0x0a, + 0x0b, 0x53, 0x43, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x04, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x2e, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, + 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0xef, 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xe8, 0x07, 0x12, + 0x18, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x4e, 0x61, + 0x6d, 0x65, 0x53, 0x61, 0x6d, 0x65, 0x10, 0xef, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0xf1, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4e, 0x6f, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10, 0xf5, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x49, 0x73, + 0x4c, 0x6f, 0x77, 0x10, 0x94, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, + 0x6f, 0x75, 0x72, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x10, 0x95, + 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, + 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xa0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0xa4, 0x08, + 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x10, 0xa5, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x10, 0xa6, 0x08, 0x12, 0x13, 0x0a, + 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x63, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0xa7, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x65, 0x78, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0xa8, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, + 0x65, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa9, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0xaa, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0xab, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, + 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xac, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xae, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x54, 0x65, 0x6c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x10, 0xaf, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb0, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x54, 0x6f, 0x6f, 0x4c, 0x65, 0x6e, 0x10, + 0xb1, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0xb2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, + 0x6c, 0x10, 0xbb, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x4d, 0x53, + 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xbc, 0x08, 0x12, 0x1c, 0x0a, 0x17, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x61, 0x64, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x10, 0xc2, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4e, 0x6f, 0x74, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x10, 0xc3, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x10, 0xc4, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xc5, 0x08, 0x12, 0x1e, 0x0a, 0x19, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x43, + 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x10, 0xc6, 0x08, 0x12, 0x1f, 0x0a, 0x1a, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x43, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xc7, 0x08, 0x12, 0x1a, 0x0a, + 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x69, 0x63, 0x6b, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0xd0, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x10, 0xd4, 0x08, 0x12, + 0x14, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x10, 0xd5, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x61, + 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xd6, 0x08, 0x12, 0x19, 0x0a, + 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x42, 0x69, 0x6e, 0x64, 0x10, 0xd7, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x65, 0x72, 0x10, 0xd8, 0x08, 0x12, 0x28, 0x0a, 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd3, 0x0f, + 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, + 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x10, 0xd5, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x10, 0xd6, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, + 0x61, 0x66, 0x65, 0x62, 0x6f, 0x78, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, + 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xd7, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd8, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd9, 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xda, 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x49, + 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdb, 0x0f, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdc, 0x0f, 0x12, 0x21, 0x0a, 0x1c, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x41, 0x63, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdd, 0x0f, 0x12, + 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, + 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6c, 0x6c, 0x65, 0x67, 0x61, + 0x6c, 0x10, 0xde, 0x0f, 0x12, 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, + 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x41, 0x63, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x49, + 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x10, 0xdf, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe0, 0x0f, 0x12, 0x20, 0x0a, + 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe1, 0x0f, 0x12, + 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x49, 0x50, 0x5f, 0x54, 0x6f, 0x6f, 0x4d, 0x61, 0x6e, 0x79, 0x52, 0x65, 0x67, 0x10, 0xe2, 0x0f, + 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe3, 0x0f, 0x12, + 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x69, 0x70, + 0x61, 0x79, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe4, 0x0f, + 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x6e, 0x64, + 0x41, 0x6c, 0x69, 0x5f, 0x4e, 0x6f, 0x74, 0x53, 0x61, 0x6d, 0x65, 0x10, 0xe5, 0x0f, 0x12, 0x27, + 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, + 0x6c, 0x69, 0x70, 0x61, 0x79, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x10, 0xe6, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4a, 0x79, 0x62, 0x5f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xb4, 0x10, 0x12, 0x17, + 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x10, 0xb5, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4a, 0x79, 0x62, 0x5f, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xb6, 0x10, 0x12, 0x15, + 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4a, 0x79, 0x62, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x45, + 0x72, 0x72, 0x10, 0xb7, 0x10, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, + 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x65, 0x74, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xd9, 0x36, 0x12, 0x29, 0x0a, + 0x24, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x59, 0x6f, + 0x75, 0x48, 0x61, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, 0x2a, 0xf8, 0x1c, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, + 0x41, 0x10, 0xb4, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb5, 0x10, 0x12, + 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x41, 0x59, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0xb6, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb7, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb8, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, + 0x41, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xb9, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, + 0x54, 0x41, 0x45, 0x58, 0x10, 0xba, 0x10, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4d, 0x43, 0x4d, 0x44, 0x10, 0xbb, 0x10, 0x12, 0x1b, 0x0a, + 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x42, 0x4f, 0x54, + 0x43, 0x48, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xbc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x57, 0x45, + 0x43, 0x48, 0x41, 0x54, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0xbd, 0x10, 0x12, 0x21, 0x0a, + 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x57, 0x45, 0x43, 0x48, 0x41, 0x54, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0xbe, 0x10, + 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, 0xbf, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x49, 0x44, 0x10, + 0xc0, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xc1, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0xc2, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x53, 0x50, 0x52, 0x45, 0x41, 0x44, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xc3, 0x10, 0x12, + 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x50, 0x52, + 0x45, 0x41, 0x44, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xc4, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, + 0x4d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc7, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x4e, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, + 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xc8, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x4e, 0x45, 0x57, 0x4d, + 0x53, 0x47, 0x10, 0xc9, 0x10, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x4e, 0x45, 0x57, 0x4d, 0x53, 0x47, 0x41, + 0x43, 0x4b, 0x10, 0xca, 0x10, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x53, 0x52, 0x56, 0x4d, 0x53, 0x47, 0x10, 0xcb, 0x10, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, + 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xcc, 0x10, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, + 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xcd, 0x10, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, + 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, 0x41, 0x10, 0xce, 0x10, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x4a, 0x41, + 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x44, 0x41, 0x54, 0x41, 0x10, 0xcf, 0x10, 0x12, 0x1b, 0x0a, 0x16, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, + 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd0, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, + 0x54, 0x45, 0x52, 0x10, 0xd1, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, + 0x10, 0xd2, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x10, 0xd3, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, 0x49, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd4, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x57, + 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xd5, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x61, 0x79, 0x41, 0x63, 0x74, 0x5f, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xd6, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x49, 0x43, 0x4b, 0x10, 0xdc, + 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x49, 0x43, 0x4b, 0x10, 0xdd, 0x10, 0x12, 0x19, 0x0a, 0x14, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x49, 0x43, 0x4f, 0x4e, 0x10, 0xde, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, + 0xdf, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x45, 0x58, 0x10, 0xe0, 0x10, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x53, 0x45, 0x58, 0x10, 0xe1, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, + 0x4e, 0x54, 0x10, 0xe2, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x10, 0xe3, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x41, 0x4c, 0x49, 0x50, 0x41, 0x59, 0x10, 0xe4, 0x10, 0x12, + 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x49, 0x4e, + 0x44, 0x41, 0x4c, 0x49, 0x50, 0x41, 0x59, 0x10, 0xe5, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, 0x4b, + 0x10, 0xe6, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x42, 0x41, 0x4e, 0x4b, 0x10, 0xe7, 0x10, 0x12, 0x1b, 0x0a, 0x16, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, + 0x4f, 0x50, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe8, 0x10, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x43, + 0x4f, 0x49, 0x4e, 0x10, 0xe9, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, + 0x52, 0x44, 0x10, 0xea, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, + 0x44, 0x10, 0xeb, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x10, 0xec, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0xed, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, + 0x4f, 0x47, 0x10, 0xee, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x49, 0x4e, 0x4c, 0x4f, + 0x47, 0x10, 0xef, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x41, 0x46, 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, 0x49, 0x4e, + 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x41, 0x46, 0x45, 0x42, 0x4f, 0x58, 0x43, 0x4f, + 0x49, 0x4e, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0xf2, + 0x10, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, + 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0xf3, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x4f, 0x55, 0x54, 0x4c, + 0x49, 0x4e, 0x45, 0x10, 0xf4, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x4f, 0x55, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, + 0xf5, 0x10, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xf6, 0x10, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, + 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xf7, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, 0x53, 0x10, 0xf8, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x53, 0x53, 0x10, 0xf9, 0x10, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x42, 0x41, 0x50, 0x49, + 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x50, 0x41, 0x53, 0x53, 0x10, 0xfa, 0x10, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x42, 0x41, + 0x50, 0x49, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x50, 0x41, 0x53, 0x53, 0x10, 0xfb, 0x10, + 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, + 0x54, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, + 0x10, 0xfc, 0x10, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x47, 0x45, 0x54, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0xfd, 0x10, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x4c, 0x49, 0x44, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xfe, 0x10, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x53, 0x4c, 0x49, 0x44, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x43, 0x4f, 0x44, 0x45, 0x10, 0xff, 0x10, 0x12, 0x1f, + 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x4f, 0x53, 0x49, + 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x80, 0x11, 0x12, + 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x4f, 0x53, + 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x81, 0x11, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, + 0x45, 0x52, 0x59, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x82, 0x11, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x83, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x44, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, + 0x10, 0x84, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x47, 0x45, 0x54, 0x44, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x85, 0x11, 0x12, 0x23, + 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, + 0x10, 0x86, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x87, 0x11, 0x12, 0x1f, + 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x88, 0x11, 0x12, + 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x52, 0x55, + 0x53, 0x54, 0x45, 0x45, 0x53, 0x48, 0x49, 0x50, 0x54, 0x49, 0x50, 0x53, 0x10, 0x89, 0x11, 0x12, + 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x45, + 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x8a, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x45, 0x58, 0x44, 0x52, 0x4f, 0x50, 0x49, + 0x54, 0x45, 0x4d, 0x53, 0x10, 0x8b, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x42, 0x55, 0x59, 0x10, 0x8c, 0x11, 0x12, 0x15, + 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x42, + 0x55, 0x59, 0x10, 0x8d, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x56, 0x49, 0x50, 0x47, 0x49, 0x46, 0x54, 0x10, 0x8e, + 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, + 0x52, 0x41, 0x57, 0x56, 0x49, 0x50, 0x47, 0x49, 0x46, 0x54, 0x10, 0x8f, 0x11, 0x12, 0x16, 0x0a, + 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, + 0x46, 0x4f, 0x10, 0x90, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x91, 0x11, 0x12, 0x1b, 0x0a, + 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x57, 0x45, 0x4c, 0x46, + 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x92, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x93, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x56, 0x49, 0x50, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x94, 0x11, 0x12, 0x1b, 0x0a, 0x16, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x41, 0x59, 0x47, 0x4f, 0x4f, + 0x44, 0x53, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x95, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, + 0x96, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x97, 0x11, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x98, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, + 0x99, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x48, 0x54, 0x54, 0x50, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x9a, 0x11, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0x9b, 0x11, 0x12, 0x1e, 0x0a, 0x19, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x10, 0x9c, 0x11, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, + 0x6c, 0x10, 0xf1, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x10, 0xf2, 0x15, 0x12, 0x1c, 0x0a, 0x17, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0xf3, 0x15, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55, 0x6e, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xf4, 0x15, 0x12, 0x1c, 0x0a, 0x17, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x55, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0xf5, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, + 0x43, 0x6f, 0x64, 0x65, 0x10, 0xf6, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x64, + 0x65, 0x10, 0xf7, 0x15, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x10, 0xf8, 0x15, 0x12, 0x15, 0x0a, 0x10, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x10, + 0xf9, 0x15, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, + 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x15, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfb, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfc, 0x15, + 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6c, + 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xfd, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xfe, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xff, 0x15, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0x80, 0x16, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0x81, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, + 0x10, 0x82, 0x16, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x83, 0x16, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, + 0x84, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x41, + 0x44, 0x56, 0x10, 0x85, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x41, 0x44, 0x56, 0x10, 0x86, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x72, 0x64, + 0x41, 0x77, 0x61, 0x72, 0x79, 0x10, 0x87, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, + 0x10, 0x88, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, + 0x89, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x8a, + 0x16, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x4d, + 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x8b, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x4d, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x10, 0x8c, 0x16, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, + 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -10897,7 +11057,7 @@ func file_player_proto_rawDescGZIP() []byte { } var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 139) +var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 142) var file_player_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: player.OpResultCode (PlayerPacketID)(0), // 1: player.PlayerPacketID @@ -11036,20 +11196,23 @@ var file_player_proto_goTypes = []interface{}{ (*CSExchangeChannel)(nil), // 134: player.CSExchangeChannel (*ChannelSwitch)(nil), // 135: player.ChannelSwitch (*SCExchangeChannel)(nil), // 136: player.SCExchangeChannel - nil, // 137: player.PlayerData.RankScoreEntry - nil, // 138: player.SCPlayerDataUpdate.RankScoreEntry - nil, // 139: player.SCGameExDropItems.ItemsEntry - nil, // 140: player.SCBindTelInfo.BindTelRewardEntry + (*CSSMSConfig)(nil), // 137: player.CSSMSConfig + (*SCSMSConfig)(nil), // 138: player.SCSMSConfig + (*SMSInfo)(nil), // 139: player.SMSInfo + nil, // 140: player.PlayerData.RankScoreEntry + nil, // 141: player.SCPlayerDataUpdate.RankScoreEntry + nil, // 142: player.SCGameExDropItems.ItemsEntry + nil, // 143: player.SCBindTelInfo.BindTelRewardEntry } var file_player_proto_depIdxs = []int32{ 4, // 0: player.SCBillList.Items:type_name -> player.BillItem 0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode - 137, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry + 140, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry 9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo 0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode 8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData 10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo - 138, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry + 141, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry 8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData 0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode 0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode @@ -11086,7 +11249,7 @@ var file_player_proto_depIdxs = []int32{ 93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo 0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode 94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward - 139, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry + 142, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry 0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode 0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode 93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo @@ -11095,7 +11258,7 @@ var file_player_proto_depIdxs = []int32{ 103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg 108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem 0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode - 140, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry + 143, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry 0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode 0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode 0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode @@ -11104,11 +11267,12 @@ var file_player_proto_depIdxs = []int32{ 108, // 59: player.SCGetWeekCardAwary.Items:type_name -> player.PayItem 9, // 60: player.SCGetWeekCardAwary.WeekCard:type_name -> player.WeekInfo 135, // 61: player.SCExchangeChannel.Datas:type_name -> player.ChannelSwitch - 62, // [62:62] is the sub-list for method output_type - 62, // [62:62] is the sub-list for method input_type - 62, // [62:62] is the sub-list for extension type_name - 62, // [62:62] is the sub-list for extension extendee - 0, // [0:62] is the sub-list for field type_name + 139, // 62: player.SCSMSConfig.Info:type_name -> player.SMSInfo + 63, // [63:63] is the sub-list for method output_type + 63, // [63:63] is the sub-list for method input_type + 63, // [63:63] is the sub-list for extension type_name + 63, // [63:63] is the sub-list for extension extendee + 0, // [0:63] is the sub-list for field type_name } func init() { file_player_proto_init() } @@ -12737,6 +12901,42 @@ func file_player_proto_init() { return nil } } + file_player_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_player_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_player_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SMSInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -12744,7 +12944,7 @@ func file_player_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_player_proto_rawDesc, NumEnums: 2, - NumMessages: 139, + NumMessages: 142, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/player/player.proto b/protocol/player/player.proto index f07f0fd..f2af2fc 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -207,6 +207,8 @@ enum PlayerPacketID { PACKET_SCPigBankCoin = 2824;//存钱罐金币数量 PACKET_CSExchangeChannel = 2825; // 开启兑换的渠道 PACKET_SCExchangeChannel = 2826; // 开启兑换的渠道 + PACKET_CSSMSConfig = 2827; //获取运营商配置 + PACKET_SCSMSConfig = 2828; //返回运营商配置 } // 账变记录 @@ -1189,10 +1191,23 @@ message CSExchangeChannel{ message ChannelSwitch { repeated string OnChannelName = 1; // 开启渠道 - int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 + int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 } // PACKET_SCExchangeChannel message SCExchangeChannel{ repeated ChannelSwitch Datas = 1; +} + +//请求运营商配置 +//PACKET_CSSMSConfig +message CSSMSConfig{ +} +//PACKET_SCSMSConfig +message SCSMSConfig{ + repeated SMSInfo Info = 1; +} +message SMSInfo{ + int32 Id = 1; + string SmsName = 2; } \ No newline at end of file diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index db71dcd..00a0c60 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -108,11 +108,12 @@ func (Rank) EnumDescriptor() ([]byte, []int) { type RankInvite int32 const ( - RankInvite_InviteType_None RankInvite = 0 - RankInvite_InviteType_Total RankInvite = 1 //总榜 - RankInvite_InviteType_Week RankInvite = 2 //周榜 - RankInvite_InviteType_Month RankInvite = 3 //月榜 - RankInvite_InviteType_Max RankInvite = 4 + RankInvite_InviteType_None RankInvite = 0 + RankInvite_InviteType_Total RankInvite = 1 //总榜 + RankInvite_InviteType_Week RankInvite = 2 //周榜 + RankInvite_InviteType_Month RankInvite = 3 //月榜 + RankInvite_InviteType_UpWeek RankInvite = 4 //上周榜 + RankInvite_InviteType_Max RankInvite = 5 ) // Enum value maps for RankInvite. @@ -122,14 +123,16 @@ var ( 1: "InviteType_Total", 2: "InviteType_Week", 3: "InviteType_Month", - 4: "InviteType_Max", + 4: "InviteType_UpWeek", + 5: "InviteType_Max", } RankInvite_value = map[string]int32{ - "InviteType_None": 0, - "InviteType_Total": 1, - "InviteType_Week": 2, - "InviteType_Month": 3, - "InviteType_Max": 4, + "InviteType_None": 0, + "InviteType_Total": 1, + "InviteType_Week": 2, + "InviteType_Month": 3, + "InviteType_UpWeek": 4, + "InviteType_Max": 5, } ) @@ -1730,17 +1733,18 @@ var file_rank_proto_rawDesc = []byte{ 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, - 0x4e, 0x2a, 0x76, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, - 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, - 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, - 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x04, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, + 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, + 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index eb0177a..f879d5d 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -110,7 +110,8 @@ enum RankInvite{ InviteType_Total = 1;//总榜 InviteType_Week = 2; //周榜 InviteType_Month = 3;//月榜 - InviteType_Max = 4; + InviteType_UpWeek = 4;//上周榜 + InviteType_Max = 5; } message GateTransmit { diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 30b6be6..c497de5 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7543,6 +7543,156 @@ func (x *DB_NewPlayerArray) GetArr() []*DB_NewPlayer { return nil } +type DB_PetSkill struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SkillId int32 `protobuf:"varint,2,opt,name=SkillId,proto3" json:"SkillId,omitempty"` + PetId int32 `protobuf:"varint,3,opt,name=PetId,proto3" json:"PetId,omitempty"` + SkillLevel int32 `protobuf:"varint,4,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` + SkillName string `protobuf:"bytes,5,opt,name=SkillName,proto3" json:"SkillName,omitempty"` + SkillDes string `protobuf:"bytes,6,opt,name=SkillDes,proto3" json:"SkillDes,omitempty"` + SKillValue string `protobuf:"bytes,7,opt,name=SKillValue,proto3" json:"SKillValue,omitempty"` + ItemConsum map[int64]int64 `protobuf:"bytes,8,rep,name=ItemConsum,proto3" json:"ItemConsum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *DB_PetSkill) Reset() { + *x = DB_PetSkill{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_PetSkill) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_PetSkill) ProtoMessage() {} + +func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_PetSkill.ProtoReflect.Descriptor instead. +func (*DB_PetSkill) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{96} +} + +func (x *DB_PetSkill) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_PetSkill) GetSkillId() int32 { + if x != nil { + return x.SkillId + } + return 0 +} + +func (x *DB_PetSkill) GetPetId() int32 { + if x != nil { + return x.PetId + } + return 0 +} + +func (x *DB_PetSkill) GetSkillLevel() int32 { + if x != nil { + return x.SkillLevel + } + return 0 +} + +func (x *DB_PetSkill) GetSkillName() string { + if x != nil { + return x.SkillName + } + return "" +} + +func (x *DB_PetSkill) GetSkillDes() string { + if x != nil { + return x.SkillDes + } + return "" +} + +func (x *DB_PetSkill) GetSKillValue() string { + if x != nil { + return x.SKillValue + } + return "" +} + +func (x *DB_PetSkill) GetItemConsum() map[int64]int64 { + if x != nil { + return x.ItemConsum + } + return nil +} + +type DB_PetSkillArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_PetSkill `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_PetSkillArray) Reset() { + *x = DB_PetSkillArray{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_PetSkillArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_PetSkillArray) ProtoMessage() {} + +func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_PetSkillArray.ProtoReflect.Descriptor instead. +func (*DB_PetSkillArray) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{97} +} + +func (x *DB_PetSkillArray) GetArr() []*DB_PetSkill { + if x != nil { + return x.Arr + } + return nil +} + type DB_PhoneLottery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7565,7 +7715,7 @@ type DB_PhoneLottery struct { func (x *DB_PhoneLottery) Reset() { *x = DB_PhoneLottery{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[96] + mi := &file_pbdata_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7578,7 +7728,7 @@ func (x *DB_PhoneLottery) String() string { func (*DB_PhoneLottery) ProtoMessage() {} func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[96] + mi := &file_pbdata_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7591,7 +7741,7 @@ func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLottery.ProtoReflect.Descriptor instead. func (*DB_PhoneLottery) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{96} + return file_pbdata_proto_rawDescGZIP(), []int{98} } func (x *DB_PhoneLottery) GetId() int32 { @@ -7689,7 +7839,7 @@ type DB_PhoneLotteryArray struct { func (x *DB_PhoneLotteryArray) Reset() { *x = DB_PhoneLotteryArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[97] + mi := &file_pbdata_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7702,7 +7852,7 @@ func (x *DB_PhoneLotteryArray) String() string { func (*DB_PhoneLotteryArray) ProtoMessage() {} func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[97] + mi := &file_pbdata_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7715,7 +7865,7 @@ func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLotteryArray.ProtoReflect.Descriptor instead. func (*DB_PhoneLotteryArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{97} + return file_pbdata_proto_rawDescGZIP(), []int{99} } func (x *DB_PhoneLotteryArray) GetArr() []*DB_PhoneLottery { @@ -7730,16 +7880,22 @@ type DB_PigBank_Diamond struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - BuyCountMin int32 `protobuf:"varint,2,opt,name=BuyCountMin,proto3" json:"BuyCountMin,omitempty"` - BuyCountMax int32 `protobuf:"varint,3,opt,name=BuyCountMax,proto3" json:"BuyCountMax,omitempty"` - CostDiamond int32 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + BuyCountMin int32 `protobuf:"varint,2,opt,name=BuyCountMin,proto3" json:"BuyCountMin,omitempty"` + BuyCountMax int32 `protobuf:"varint,3,opt,name=BuyCountMax,proto3" json:"BuyCountMax,omitempty"` + CostDiamond int32 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` + MaxGold int32 `protobuf:"varint,5,opt,name=MaxGold,proto3" json:"MaxGold,omitempty"` + MaxDiamond int32 `protobuf:"varint,6,opt,name=MaxDiamond,proto3" json:"MaxDiamond,omitempty"` + DiamondId int32 `protobuf:"varint,7,opt,name=DiamondId,proto3" json:"DiamondId,omitempty"` + CoinPrice int32 `protobuf:"varint,8,opt,name=CoinPrice,proto3" json:"CoinPrice,omitempty"` + DiamondPrice int32 `protobuf:"varint,9,opt,name=DiamondPrice,proto3" json:"DiamondPrice,omitempty"` + DiamondNowPrice int32 `protobuf:"varint,10,opt,name=DiamondNowPrice,proto3" json:"DiamondNowPrice,omitempty"` } func (x *DB_PigBank_Diamond) Reset() { *x = DB_PigBank_Diamond{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[98] + mi := &file_pbdata_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7752,7 +7908,7 @@ func (x *DB_PigBank_Diamond) String() string { func (*DB_PigBank_Diamond) ProtoMessage() {} func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[98] + mi := &file_pbdata_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7765,7 +7921,7 @@ func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_Diamond.ProtoReflect.Descriptor instead. func (*DB_PigBank_Diamond) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{98} + return file_pbdata_proto_rawDescGZIP(), []int{100} } func (x *DB_PigBank_Diamond) GetId() int32 { @@ -7796,6 +7952,48 @@ func (x *DB_PigBank_Diamond) GetCostDiamond() int32 { return 0 } +func (x *DB_PigBank_Diamond) GetMaxGold() int32 { + if x != nil { + return x.MaxGold + } + return 0 +} + +func (x *DB_PigBank_Diamond) GetMaxDiamond() int32 { + if x != nil { + return x.MaxDiamond + } + return 0 +} + +func (x *DB_PigBank_Diamond) GetDiamondId() int32 { + if x != nil { + return x.DiamondId + } + return 0 +} + +func (x *DB_PigBank_Diamond) GetCoinPrice() int32 { + if x != nil { + return x.CoinPrice + } + return 0 +} + +func (x *DB_PigBank_Diamond) GetDiamondPrice() int32 { + if x != nil { + return x.DiamondPrice + } + return 0 +} + +func (x *DB_PigBank_Diamond) GetDiamondNowPrice() int32 { + if x != nil { + return x.DiamondNowPrice + } + return 0 +} + type DB_PigBank_DiamondArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7807,7 +8005,7 @@ type DB_PigBank_DiamondArray struct { func (x *DB_PigBank_DiamondArray) Reset() { *x = DB_PigBank_DiamondArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[99] + mi := &file_pbdata_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7820,7 +8018,7 @@ func (x *DB_PigBank_DiamondArray) String() string { func (*DB_PigBank_DiamondArray) ProtoMessage() {} func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[99] + mi := &file_pbdata_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7833,7 +8031,7 @@ func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_DiamondArray.ProtoReflect.Descriptor instead. func (*DB_PigBank_DiamondArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{99} + return file_pbdata_proto_rawDescGZIP(), []int{101} } func (x *DB_PigBank_DiamondArray) GetArr() []*DB_PigBank_Diamond { @@ -7856,7 +8054,7 @@ type DB_Pigbank_Prop struct { func (x *DB_Pigbank_Prop) Reset() { *x = DB_Pigbank_Prop{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[100] + mi := &file_pbdata_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7869,7 +8067,7 @@ func (x *DB_Pigbank_Prop) String() string { func (*DB_Pigbank_Prop) ProtoMessage() {} func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[100] + mi := &file_pbdata_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7882,7 +8080,7 @@ func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_Prop.ProtoReflect.Descriptor instead. func (*DB_Pigbank_Prop) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{100} + return file_pbdata_proto_rawDescGZIP(), []int{102} } func (x *DB_Pigbank_Prop) GetId() int32 { @@ -7917,7 +8115,7 @@ type DB_Pigbank_PropArray struct { func (x *DB_Pigbank_PropArray) Reset() { *x = DB_Pigbank_PropArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[101] + mi := &file_pbdata_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7930,7 +8128,7 @@ func (x *DB_Pigbank_PropArray) String() string { func (*DB_Pigbank_PropArray) ProtoMessage() {} func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[101] + mi := &file_pbdata_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7943,7 +8141,7 @@ func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_PropArray.ProtoReflect.Descriptor instead. func (*DB_Pigbank_PropArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{101} + return file_pbdata_proto_rawDescGZIP(), []int{103} } func (x *DB_Pigbank_PropArray) GetArr() []*DB_Pigbank_Prop { @@ -7965,7 +8163,7 @@ type DB_PlayerExp struct { func (x *DB_PlayerExp) Reset() { *x = DB_PlayerExp{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[102] + mi := &file_pbdata_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7978,7 +8176,7 @@ func (x *DB_PlayerExp) String() string { func (*DB_PlayerExp) ProtoMessage() {} func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[102] + mi := &file_pbdata_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7991,7 +8189,7 @@ func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExp.ProtoReflect.Descriptor instead. func (*DB_PlayerExp) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{102} + return file_pbdata_proto_rawDescGZIP(), []int{104} } func (x *DB_PlayerExp) GetId() int32 { @@ -8019,7 +8217,7 @@ type DB_PlayerExpArray struct { func (x *DB_PlayerExpArray) Reset() { *x = DB_PlayerExpArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[103] + mi := &file_pbdata_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8032,7 +8230,7 @@ func (x *DB_PlayerExpArray) String() string { func (*DB_PlayerExpArray) ProtoMessage() {} func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[103] + mi := &file_pbdata_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8045,7 +8243,7 @@ func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExpArray.ProtoReflect.Descriptor instead. func (*DB_PlayerExpArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{103} + return file_pbdata_proto_rawDescGZIP(), []int{105} } func (x *DB_PlayerExpArray) GetArr() []*DB_PlayerExp { @@ -8070,7 +8268,7 @@ type DB_PlayerInfo struct { func (x *DB_PlayerInfo) Reset() { *x = DB_PlayerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[104] + mi := &file_pbdata_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8083,7 +8281,7 @@ func (x *DB_PlayerInfo) String() string { func (*DB_PlayerInfo) ProtoMessage() {} func (x *DB_PlayerInfo) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[104] + mi := &file_pbdata_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8096,7 +8294,7 @@ func (x *DB_PlayerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerInfo.ProtoReflect.Descriptor instead. func (*DB_PlayerInfo) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{104} + return file_pbdata_proto_rawDescGZIP(), []int{106} } func (x *DB_PlayerInfo) GetCity() string { @@ -8145,7 +8343,7 @@ type DB_PlayerInfoArray struct { func (x *DB_PlayerInfoArray) Reset() { *x = DB_PlayerInfoArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[105] + mi := &file_pbdata_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8158,7 +8356,7 @@ func (x *DB_PlayerInfoArray) String() string { func (*DB_PlayerInfoArray) ProtoMessage() {} func (x *DB_PlayerInfoArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[105] + mi := &file_pbdata_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8171,7 +8369,7 @@ func (x *DB_PlayerInfoArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerInfoArray.ProtoReflect.Descriptor instead. func (*DB_PlayerInfoArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{105} + return file_pbdata_proto_rawDescGZIP(), []int{107} } func (x *DB_PlayerInfoArray) GetArr() []*DB_PlayerInfo { @@ -8209,7 +8407,7 @@ type DB_PlayerType struct { func (x *DB_PlayerType) Reset() { *x = DB_PlayerType{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[106] + mi := &file_pbdata_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8222,7 +8420,7 @@ func (x *DB_PlayerType) String() string { func (*DB_PlayerType) ProtoMessage() {} func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[106] + mi := &file_pbdata_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8235,7 +8433,7 @@ func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerType.ProtoReflect.Descriptor instead. func (*DB_PlayerType) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{106} + return file_pbdata_proto_rawDescGZIP(), []int{108} } func (x *DB_PlayerType) GetId() int32 { @@ -8375,7 +8573,7 @@ type DB_PlayerTypeArray struct { func (x *DB_PlayerTypeArray) Reset() { *x = DB_PlayerTypeArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[107] + mi := &file_pbdata_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8388,7 +8586,7 @@ func (x *DB_PlayerTypeArray) String() string { func (*DB_PlayerTypeArray) ProtoMessage() {} func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[107] + mi := &file_pbdata_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8401,7 +8599,7 @@ func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerTypeArray.ProtoReflect.Descriptor instead. func (*DB_PlayerTypeArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{107} + return file_pbdata_proto_rawDescGZIP(), []int{109} } func (x *DB_PlayerTypeArray) GetArr() []*DB_PlayerType { @@ -8425,7 +8623,7 @@ type DB_PotOdd struct { func (x *DB_PotOdd) Reset() { *x = DB_PotOdd{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[108] + mi := &file_pbdata_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8438,7 +8636,7 @@ func (x *DB_PotOdd) String() string { func (*DB_PotOdd) ProtoMessage() {} func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[108] + mi := &file_pbdata_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8451,7 +8649,7 @@ func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOdd.ProtoReflect.Descriptor instead. func (*DB_PotOdd) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{108} + return file_pbdata_proto_rawDescGZIP(), []int{110} } func (x *DB_PotOdd) GetId() int32 { @@ -8493,7 +8691,7 @@ type DB_PotOddArray struct { func (x *DB_PotOddArray) Reset() { *x = DB_PotOddArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[109] + mi := &file_pbdata_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8506,7 +8704,7 @@ func (x *DB_PotOddArray) String() string { func (*DB_PotOddArray) ProtoMessage() {} func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[109] + mi := &file_pbdata_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8519,7 +8717,7 @@ func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOddArray.ProtoReflect.Descriptor instead. func (*DB_PotOddArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{109} + return file_pbdata_proto_rawDescGZIP(), []int{111} } func (x *DB_PotOddArray) GetArr() []*DB_PotOdd { @@ -8543,7 +8741,7 @@ type DB_PropExchange struct { func (x *DB_PropExchange) Reset() { *x = DB_PropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[110] + mi := &file_pbdata_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8556,7 +8754,7 @@ func (x *DB_PropExchange) String() string { func (*DB_PropExchange) ProtoMessage() {} func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[110] + mi := &file_pbdata_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8569,7 +8767,7 @@ func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchange.ProtoReflect.Descriptor instead. func (*DB_PropExchange) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{110} + return file_pbdata_proto_rawDescGZIP(), []int{112} } func (x *DB_PropExchange) GetId() int32 { @@ -8611,7 +8809,7 @@ type DB_PropExchangeArray struct { func (x *DB_PropExchangeArray) Reset() { *x = DB_PropExchangeArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[111] + mi := &file_pbdata_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8624,7 +8822,7 @@ func (x *DB_PropExchangeArray) String() string { func (*DB_PropExchangeArray) ProtoMessage() {} func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[111] + mi := &file_pbdata_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8637,7 +8835,7 @@ func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchangeArray.ProtoReflect.Descriptor instead. func (*DB_PropExchangeArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{111} + return file_pbdata_proto_rawDescGZIP(), []int{113} } func (x *DB_PropExchangeArray) GetArr() []*DB_PropExchange { @@ -8660,7 +8858,7 @@ type DB_RankCycle struct { func (x *DB_RankCycle) Reset() { *x = DB_RankCycle{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[112] + mi := &file_pbdata_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8673,7 +8871,7 @@ func (x *DB_RankCycle) String() string { func (*DB_RankCycle) ProtoMessage() {} func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[112] + mi := &file_pbdata_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8686,7 +8884,7 @@ func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycle.ProtoReflect.Descriptor instead. func (*DB_RankCycle) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{112} + return file_pbdata_proto_rawDescGZIP(), []int{114} } func (x *DB_RankCycle) GetId() int32 { @@ -8721,7 +8919,7 @@ type DB_RankCycleArray struct { func (x *DB_RankCycleArray) Reset() { *x = DB_RankCycleArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[113] + mi := &file_pbdata_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8734,7 +8932,7 @@ func (x *DB_RankCycleArray) String() string { func (*DB_RankCycleArray) ProtoMessage() {} func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[113] + mi := &file_pbdata_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8747,7 +8945,7 @@ func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycleArray.ProtoReflect.Descriptor instead. func (*DB_RankCycleArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{113} + return file_pbdata_proto_rawDescGZIP(), []int{115} } func (x *DB_RankCycleArray) GetArr() []*DB_RankCycle { @@ -8772,7 +8970,7 @@ type DB_RankLevel struct { func (x *DB_RankLevel) Reset() { *x = DB_RankLevel{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[114] + mi := &file_pbdata_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8785,7 +8983,7 @@ func (x *DB_RankLevel) String() string { func (*DB_RankLevel) ProtoMessage() {} func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[114] + mi := &file_pbdata_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8798,7 +8996,7 @@ func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevel.ProtoReflect.Descriptor instead. func (*DB_RankLevel) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{114} + return file_pbdata_proto_rawDescGZIP(), []int{116} } func (x *DB_RankLevel) GetId() int32 { @@ -8847,7 +9045,7 @@ type DB_RankLevelArray struct { func (x *DB_RankLevelArray) Reset() { *x = DB_RankLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[115] + mi := &file_pbdata_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8860,7 +9058,7 @@ func (x *DB_RankLevelArray) String() string { func (*DB_RankLevelArray) ProtoMessage() {} func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[115] + mi := &file_pbdata_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8873,7 +9071,7 @@ func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevelArray.ProtoReflect.Descriptor instead. func (*DB_RankLevelArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{115} + return file_pbdata_proto_rawDescGZIP(), []int{117} } func (x *DB_RankLevelArray) GetArr() []*DB_RankLevel { @@ -8902,7 +9100,7 @@ type DB_RankReward struct { func (x *DB_RankReward) Reset() { *x = DB_RankReward{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[116] + mi := &file_pbdata_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8915,7 +9113,7 @@ func (x *DB_RankReward) String() string { func (*DB_RankReward) ProtoMessage() {} func (x *DB_RankReward) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[116] + mi := &file_pbdata_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8928,7 +9126,7 @@ func (x *DB_RankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankReward.ProtoReflect.Descriptor instead. func (*DB_RankReward) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{116} + return file_pbdata_proto_rawDescGZIP(), []int{118} } func (x *DB_RankReward) GetId() int32 { @@ -9005,7 +9203,7 @@ type DB_RankRewardArray struct { func (x *DB_RankRewardArray) Reset() { *x = DB_RankRewardArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[117] + mi := &file_pbdata_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9018,7 +9216,7 @@ func (x *DB_RankRewardArray) String() string { func (*DB_RankRewardArray) ProtoMessage() {} func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[117] + mi := &file_pbdata_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9031,7 +9229,7 @@ func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankRewardArray.ProtoReflect.Descriptor instead. func (*DB_RankRewardArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{117} + return file_pbdata_proto_rawDescGZIP(), []int{119} } func (x *DB_RankRewardArray) GetArr() []*DB_RankReward { @@ -9053,7 +9251,7 @@ type DB_Sensitive_Words struct { func (x *DB_Sensitive_Words) Reset() { *x = DB_Sensitive_Words{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[118] + mi := &file_pbdata_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9066,7 +9264,7 @@ func (x *DB_Sensitive_Words) String() string { func (*DB_Sensitive_Words) ProtoMessage() {} func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[118] + mi := &file_pbdata_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9079,7 +9277,7 @@ func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_Words.ProtoReflect.Descriptor instead. func (*DB_Sensitive_Words) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{118} + return file_pbdata_proto_rawDescGZIP(), []int{120} } func (x *DB_Sensitive_Words) GetId() int32 { @@ -9107,7 +9305,7 @@ type DB_Sensitive_WordsArray struct { func (x *DB_Sensitive_WordsArray) Reset() { *x = DB_Sensitive_WordsArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[119] + mi := &file_pbdata_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9120,7 +9318,7 @@ func (x *DB_Sensitive_WordsArray) String() string { func (*DB_Sensitive_WordsArray) ProtoMessage() {} func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[119] + mi := &file_pbdata_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9133,7 +9331,7 @@ func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_WordsArray.ProtoReflect.Descriptor instead. func (*DB_Sensitive_WordsArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{119} + return file_pbdata_proto_rawDescGZIP(), []int{121} } func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { @@ -9169,7 +9367,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[120] + mi := &file_pbdata_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9182,7 +9380,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[120] + mi := &file_pbdata_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9195,7 +9393,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{120} + return file_pbdata_proto_rawDescGZIP(), []int{122} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -9321,7 +9519,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[121] + mi := &file_pbdata_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9334,7 +9532,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[121] + mi := &file_pbdata_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9347,7 +9545,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{121} + return file_pbdata_proto_rawDescGZIP(), []int{123} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -9372,7 +9570,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9385,7 +9583,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9398,7 +9596,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{122} + return file_pbdata_proto_rawDescGZIP(), []int{124} } func (x *DB_SystemChance) GetId() int32 { @@ -9447,7 +9645,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9460,7 +9658,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9473,7 +9671,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{123} + return file_pbdata_proto_rawDescGZIP(), []int{125} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -9502,7 +9700,7 @@ type DB_Task struct { func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9515,7 +9713,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9528,7 +9726,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{124} + return file_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_Task) GetId() int32 { @@ -9605,7 +9803,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9618,7 +9816,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9631,7 +9829,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{125} + return file_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -9658,7 +9856,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9671,7 +9869,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9684,7 +9882,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{126} + return file_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -9747,7 +9945,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9760,7 +9958,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9773,7 +9971,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{127} + return file_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -9796,7 +9994,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9809,7 +10007,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9822,7 +10020,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{128} + return file_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_Tips) GetId() int32 { @@ -9857,7 +10055,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9870,7 +10068,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9883,7 +10081,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{129} + return file_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -9922,7 +10120,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9935,7 +10133,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9948,7 +10146,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{130} + return file_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_VIP) GetId() int32 { @@ -10095,7 +10293,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10108,7 +10306,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10121,7 +10319,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{131} + return file_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11113,349 +11311,386 @@ var file_pbdata_proto_rawDesc = []byte{ 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, - 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, - 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, - 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, - 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x8a, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, - 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, - 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x22, 0x47, 0x0a, 0x17, - 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, - 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x53, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, - 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, - 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, - 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, - 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, - 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, - 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, - 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x97, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, - 0x12, 0x35, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, - 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, - 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, - 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, - 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, - 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, - 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, - 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, - 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, - 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, - 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, - 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, - 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, - 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, - 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, - 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, - 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, - 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, - 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, - 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, - 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, - 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, - 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, - 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, - 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, - 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, - 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, - 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, - 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, - 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, - 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, - 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, - 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, - 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, - 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, - 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, - 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, - 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, - 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, - 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xcb, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, + 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, + 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, + 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, + 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, + 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, + 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, + 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, + 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, + 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, + 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, + 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, + 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, + 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, + 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, + 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, + 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, + 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, + 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, + 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, + 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, + 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, + 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, + 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, + 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, + 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, + 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, + 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, + 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, + 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, + 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, + 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, + 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, + 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, + 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, + 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, + 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, + 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, + 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, + 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, + 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, + 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -11470,7 +11705,7 @@ func file_pbdata_proto_rawDescGZIP() []byte { return file_pbdata_proto_rawDescData } -var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 141) +var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 144) var file_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -11568,51 +11803,54 @@ var file_pbdata_proto_goTypes = []interface{}{ (*DB_NameGirlArray)(nil), // 93: server.DB_NameGirlArray (*DB_NewPlayer)(nil), // 94: server.DB_NewPlayer (*DB_NewPlayerArray)(nil), // 95: server.DB_NewPlayerArray - (*DB_PhoneLottery)(nil), // 96: server.DB_PhoneLottery - (*DB_PhoneLotteryArray)(nil), // 97: server.DB_PhoneLotteryArray - (*DB_PigBank_Diamond)(nil), // 98: server.DB_PigBank_Diamond - (*DB_PigBank_DiamondArray)(nil), // 99: server.DB_PigBank_DiamondArray - (*DB_Pigbank_Prop)(nil), // 100: server.DB_Pigbank_Prop - (*DB_Pigbank_PropArray)(nil), // 101: server.DB_Pigbank_PropArray - (*DB_PlayerExp)(nil), // 102: server.DB_PlayerExp - (*DB_PlayerExpArray)(nil), // 103: server.DB_PlayerExpArray - (*DB_PlayerInfo)(nil), // 104: server.DB_PlayerInfo - (*DB_PlayerInfoArray)(nil), // 105: server.DB_PlayerInfoArray - (*DB_PlayerType)(nil), // 106: server.DB_PlayerType - (*DB_PlayerTypeArray)(nil), // 107: server.DB_PlayerTypeArray - (*DB_PotOdd)(nil), // 108: server.DB_PotOdd - (*DB_PotOddArray)(nil), // 109: server.DB_PotOddArray - (*DB_PropExchange)(nil), // 110: server.DB_PropExchange - (*DB_PropExchangeArray)(nil), // 111: server.DB_PropExchangeArray - (*DB_RankCycle)(nil), // 112: server.DB_RankCycle - (*DB_RankCycleArray)(nil), // 113: server.DB_RankCycleArray - (*DB_RankLevel)(nil), // 114: server.DB_RankLevel - (*DB_RankLevelArray)(nil), // 115: server.DB_RankLevelArray - (*DB_RankReward)(nil), // 116: server.DB_RankReward - (*DB_RankRewardArray)(nil), // 117: server.DB_RankRewardArray - (*DB_Sensitive_Words)(nil), // 118: server.DB_Sensitive_Words - (*DB_Sensitive_WordsArray)(nil), // 119: server.DB_Sensitive_WordsArray - (*DB_SlotRateWeight)(nil), // 120: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 121: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 122: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 123: server.DB_SystemChanceArray - (*DB_Task)(nil), // 124: server.DB_Task - (*DB_TaskArray)(nil), // 125: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 126: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 127: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 128: server.DB_Tips - (*DB_TipsArray)(nil), // 129: server.DB_TipsArray - (*DB_VIP)(nil), // 130: server.DB_VIP - (*DB_VIPArray)(nil), // 131: server.DB_VIPArray - nil, // 132: server.DB_CollectBox.ItemIDEntry - nil, // 133: server.DB_GiftBox.ItemIDEntry - nil, // 134: server.DB_GiftCard.RewardsEntry - nil, // 135: server.DB_GiftCard.DayRewardsEntry - nil, // 136: server.DB_PropExchange.CostEntry - nil, // 137: server.DB_PropExchange.GainEntry - nil, // 138: server.DB_Task.AwardEntry - nil, // 139: server.DB_VIP.Privilege7Entry - nil, // 140: server.DB_VIP.AwardEntry + (*DB_PetSkill)(nil), // 96: server.DB_PetSkill + (*DB_PetSkillArray)(nil), // 97: server.DB_PetSkillArray + (*DB_PhoneLottery)(nil), // 98: server.DB_PhoneLottery + (*DB_PhoneLotteryArray)(nil), // 99: server.DB_PhoneLotteryArray + (*DB_PigBank_Diamond)(nil), // 100: server.DB_PigBank_Diamond + (*DB_PigBank_DiamondArray)(nil), // 101: server.DB_PigBank_DiamondArray + (*DB_Pigbank_Prop)(nil), // 102: server.DB_Pigbank_Prop + (*DB_Pigbank_PropArray)(nil), // 103: server.DB_Pigbank_PropArray + (*DB_PlayerExp)(nil), // 104: server.DB_PlayerExp + (*DB_PlayerExpArray)(nil), // 105: server.DB_PlayerExpArray + (*DB_PlayerInfo)(nil), // 106: server.DB_PlayerInfo + (*DB_PlayerInfoArray)(nil), // 107: server.DB_PlayerInfoArray + (*DB_PlayerType)(nil), // 108: server.DB_PlayerType + (*DB_PlayerTypeArray)(nil), // 109: server.DB_PlayerTypeArray + (*DB_PotOdd)(nil), // 110: server.DB_PotOdd + (*DB_PotOddArray)(nil), // 111: server.DB_PotOddArray + (*DB_PropExchange)(nil), // 112: server.DB_PropExchange + (*DB_PropExchangeArray)(nil), // 113: server.DB_PropExchangeArray + (*DB_RankCycle)(nil), // 114: server.DB_RankCycle + (*DB_RankCycleArray)(nil), // 115: server.DB_RankCycleArray + (*DB_RankLevel)(nil), // 116: server.DB_RankLevel + (*DB_RankLevelArray)(nil), // 117: server.DB_RankLevelArray + (*DB_RankReward)(nil), // 118: server.DB_RankReward + (*DB_RankRewardArray)(nil), // 119: server.DB_RankRewardArray + (*DB_Sensitive_Words)(nil), // 120: server.DB_Sensitive_Words + (*DB_Sensitive_WordsArray)(nil), // 121: server.DB_Sensitive_WordsArray + (*DB_SlotRateWeight)(nil), // 122: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 123: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 124: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 125: server.DB_SystemChanceArray + (*DB_Task)(nil), // 126: server.DB_Task + (*DB_TaskArray)(nil), // 127: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 128: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 129: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 130: server.DB_Tips + (*DB_TipsArray)(nil), // 131: server.DB_TipsArray + (*DB_VIP)(nil), // 132: server.DB_VIP + (*DB_VIPArray)(nil), // 133: server.DB_VIPArray + nil, // 134: server.DB_CollectBox.ItemIDEntry + nil, // 135: server.DB_GiftBox.ItemIDEntry + nil, // 136: server.DB_GiftCard.RewardsEntry + nil, // 137: server.DB_GiftCard.DayRewardsEntry + nil, // 138: server.DB_PetSkill.ItemConsumEntry + nil, // 139: server.DB_PropExchange.CostEntry + nil, // 140: server.DB_PropExchange.GainEntry + nil, // 141: server.DB_Task.AwardEntry + nil, // 142: server.DB_VIP.Privilege7Entry + nil, // 143: server.DB_VIP.AwardEntry } var file_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -11627,7 +11865,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 132, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 134, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -11652,10 +11890,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 34: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 35: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 36: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 133, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 135, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 38: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 134, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 135, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 136, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 137, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 41: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 42: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 43: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -11667,34 +11905,36 @@ var file_pbdata_proto_depIdxs = []int32{ 90, // 49: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy 92, // 50: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer - 96, // 52: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 98, // 53: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 100, // 54: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 102, // 55: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 104, // 56: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo - 106, // 57: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 108, // 58: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 136, // 59: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 137, // 60: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 110, // 61: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 112, // 62: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 114, // 63: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 116, // 64: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 118, // 65: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 120, // 66: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 122, // 67: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 138, // 68: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 124, // 69: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 126, // 70: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 128, // 71: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 139, // 72: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 140, // 73: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 130, // 74: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 75, // [75:75] is the sub-list for method output_type - 75, // [75:75] is the sub-list for method input_type - 75, // [75:75] is the sub-list for extension type_name - 75, // [75:75] is the sub-list for extension extendee - 0, // [0:75] is the sub-list for field type_name + 138, // 52: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 96, // 53: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 98, // 54: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 100, // 55: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 102, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 104, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 106, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo + 108, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 110, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 139, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 140, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 112, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 114, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 116, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 118, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 120, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 122, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 124, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 141, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 126, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 128, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 130, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 142, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 143, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 132, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 77, // [77:77] is the sub-list for method output_type + 77, // [77:77] is the sub-list for method input_type + 77, // [77:77] is the sub-list for extension type_name + 77, // [77:77] is the sub-list for extension extendee + 0, // [0:77] is the sub-list for field type_name } func init() { file_pbdata_proto_init() } @@ -12856,7 +13096,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLottery); i { + switch v := v.(*DB_PetSkill); i { case 0: return &v.state case 1: @@ -12868,7 +13108,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLotteryArray); i { + switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state case 1: @@ -12880,7 +13120,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_Diamond); i { + switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state case 1: @@ -12892,7 +13132,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_DiamondArray); i { + switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state case 1: @@ -12904,7 +13144,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_Prop); i { + switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state case 1: @@ -12916,7 +13156,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_PropArray); i { + switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state case 1: @@ -12928,7 +13168,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExp); i { + switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state case 1: @@ -12940,7 +13180,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExpArray); i { + switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state case 1: @@ -12952,7 +13192,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfo); i { + switch v := v.(*DB_PlayerExp); i { case 0: return &v.state case 1: @@ -12964,7 +13204,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfoArray); i { + switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state case 1: @@ -12976,7 +13216,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerType); i { + switch v := v.(*DB_PlayerInfo); i { case 0: return &v.state case 1: @@ -12988,7 +13228,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerTypeArray); i { + switch v := v.(*DB_PlayerInfoArray); i { case 0: return &v.state case 1: @@ -13000,7 +13240,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOdd); i { + switch v := v.(*DB_PlayerType); i { case 0: return &v.state case 1: @@ -13012,7 +13252,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOddArray); i { + switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state case 1: @@ -13024,7 +13264,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchange); i { + switch v := v.(*DB_PotOdd); i { case 0: return &v.state case 1: @@ -13036,7 +13276,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchangeArray); i { + switch v := v.(*DB_PotOddArray); i { case 0: return &v.state case 1: @@ -13048,7 +13288,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycle); i { + switch v := v.(*DB_PropExchange); i { case 0: return &v.state case 1: @@ -13060,7 +13300,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycleArray); i { + switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state case 1: @@ -13072,7 +13312,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevel); i { + switch v := v.(*DB_RankCycle); i { case 0: return &v.state case 1: @@ -13084,7 +13324,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevelArray); i { + switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state case 1: @@ -13096,7 +13336,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankReward); i { + switch v := v.(*DB_RankLevel); i { case 0: return &v.state case 1: @@ -13108,7 +13348,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankRewardArray); i { + switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state case 1: @@ -13120,7 +13360,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_Words); i { + switch v := v.(*DB_RankReward); i { case 0: return &v.state case 1: @@ -13132,7 +13372,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_WordsArray); i { + switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state case 1: @@ -13144,7 +13384,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeight); i { + switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state case 1: @@ -13156,7 +13396,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeightArray); i { + switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state case 1: @@ -13168,7 +13408,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChance); i { + switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state case 1: @@ -13180,7 +13420,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChanceArray); i { + switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state case 1: @@ -13192,7 +13432,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Task); i { + switch v := v.(*DB_SystemChance); i { case 0: return &v.state case 1: @@ -13204,7 +13444,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TaskArray); i { + switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state case 1: @@ -13216,7 +13456,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMapping); i { + switch v := v.(*DB_Task); i { case 0: return &v.state case 1: @@ -13228,7 +13468,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + switch v := v.(*DB_TaskArray); i { case 0: return &v.state case 1: @@ -13240,7 +13480,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Tips); i { + switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state case 1: @@ -13252,7 +13492,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TipsArray); i { + switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state case 1: @@ -13264,7 +13504,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIP); i { + switch v := v.(*DB_Tips); i { case 0: return &v.state case 1: @@ -13276,6 +13516,30 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_TipsArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -13294,7 +13558,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 141, + NumMessages: 144, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index b8e9622..ac4ed32 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1237,6 +1237,30 @@ message DB_NewPlayerArray { repeated DB_NewPlayer Arr = 1; } +message DB_PetSkill { + + int32 Id = 1; + + int32 SkillId = 2; + + int32 PetId = 3; + + int32 SkillLevel = 4; + + string SkillName = 5; + + string SkillDes = 6; + + string SKillValue = 7; + + map ItemConsum = 8; + +} + +message DB_PetSkillArray { + repeated DB_PetSkill Arr = 1; +} + message DB_PhoneLottery { int32 Id = 1; @@ -1279,6 +1303,18 @@ message DB_PigBank_Diamond { int32 CostDiamond = 4; + int32 MaxGold = 5; + + int32 MaxDiamond = 6; + + int32 DiamondId = 7; + + int32 CoinPrice = 8; + + int32 DiamondPrice = 9; + + int32 DiamondNowPrice = 10; + } message DB_PigBank_DiamondArray { diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index a44dde2..1d31b42 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -4453,20 +4453,86 @@ func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate { return nil } +type AddUpDate2TypeData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` +} + +func (x *AddUpDate2TypeData) Reset() { + *x = AddUpDate2TypeData{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUpDate2TypeData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUpDate2TypeData) ProtoMessage() {} + +func (x *AddUpDate2TypeData) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUpDate2TypeData.ProtoReflect.Descriptor instead. +func (*AddUpDate2TypeData) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{40} +} + +func (x *AddUpDate2TypeData) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *AddUpDate2TypeData) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddUpDate2TypeData) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + type Welfare7SignDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 - Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 - AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 + Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 + AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUpDate2 []*AddUpWelfareDate `protobuf:"bytes,4,rep,name=AddUpDate2,proto3" json:"AddUpDate2,omitempty"` //进阶奖励 + AddUpDate2Google []*AddUpWelfareDate `protobuf:"bytes,5,rep,name=AddUpDate2Google,proto3" json:"AddUpDate2Google,omitempty"` //谷歌渠道进阶奖励 + AddUpDate2Type []*AddUpDate2TypeData `protobuf:"bytes,6,rep,name=AddUpDate2Type,proto3" json:"AddUpDate2Type,omitempty"` //进阶奖励领取条件 } func (x *Welfare7SignDate) Reset() { *x = Welfare7SignDate{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[40] + mi := &file_common_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4479,7 +4545,7 @@ func (x *Welfare7SignDate) String() string { func (*Welfare7SignDate) ProtoMessage() {} func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[40] + mi := &file_common_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4492,7 +4558,7 @@ func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDate.ProtoReflect.Descriptor instead. func (*Welfare7SignDate) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{40} + return file_common_proto_rawDescGZIP(), []int{41} } func (x *Welfare7SignDate) GetDay() int32 { @@ -4516,6 +4582,27 @@ func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate { return nil } +func (x *Welfare7SignDate) GetAddUpDate2() []*AddUpWelfareDate { + if x != nil { + return x.AddUpDate2 + } + return nil +} + +func (x *Welfare7SignDate) GetAddUpDate2Google() []*AddUpWelfareDate { + if x != nil { + return x.AddUpDate2Google + } + return nil +} + +func (x *Welfare7SignDate) GetAddUpDate2Type() []*AddUpDate2TypeData { + if x != nil { + return x.AddUpDate2Type + } + return nil +} + // etcd /game/act_7sign 7日签到 type Welfare7SignDateList struct { state protoimpl.MessageState @@ -4530,7 +4617,7 @@ type Welfare7SignDateList struct { func (x *Welfare7SignDateList) Reset() { *x = Welfare7SignDateList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[41] + mi := &file_common_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4543,7 +4630,7 @@ func (x *Welfare7SignDateList) String() string { func (*Welfare7SignDateList) ProtoMessage() {} func (x *Welfare7SignDateList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[41] + mi := &file_common_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4556,7 +4643,7 @@ func (x *Welfare7SignDateList) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDateList.ProtoReflect.Descriptor instead. func (*Welfare7SignDateList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{41} + return file_common_proto_rawDescGZIP(), []int{42} } func (x *Welfare7SignDateList) GetList() []*Welfare7SignDate { @@ -4599,7 +4686,7 @@ type BlindBoxData struct { func (x *BlindBoxData) Reset() { *x = BlindBoxData{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[42] + mi := &file_common_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4612,7 +4699,7 @@ func (x *BlindBoxData) String() string { func (*BlindBoxData) ProtoMessage() {} func (x *BlindBoxData) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[42] + mi := &file_common_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4625,7 +4712,7 @@ func (x *BlindBoxData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindBoxData.ProtoReflect.Descriptor instead. func (*BlindBoxData) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{42} + return file_common_proto_rawDescGZIP(), []int{43} } func (x *BlindBoxData) GetId() int32 { @@ -4707,7 +4794,7 @@ type WelfareBlindBoxDataList struct { func (x *WelfareBlindBoxDataList) Reset() { *x = WelfareBlindBoxDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[43] + mi := &file_common_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4720,7 +4807,7 @@ func (x *WelfareBlindBoxDataList) String() string { func (*WelfareBlindBoxDataList) ProtoMessage() {} func (x *WelfareBlindBoxDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[43] + mi := &file_common_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4733,7 +4820,7 @@ func (x *WelfareBlindBoxDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareBlindBoxDataList.ProtoReflect.Descriptor instead. func (*WelfareBlindBoxDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{43} + return file_common_proto_rawDescGZIP(), []int{44} } func (x *WelfareBlindBoxDataList) GetList() []*BlindBoxData { @@ -4788,7 +4875,7 @@ type WelfareSpree struct { func (x *WelfareSpree) Reset() { *x = WelfareSpree{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[44] + mi := &file_common_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4801,7 +4888,7 @@ func (x *WelfareSpree) String() string { func (*WelfareSpree) ProtoMessage() {} func (x *WelfareSpree) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[44] + mi := &file_common_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4814,7 +4901,7 @@ func (x *WelfareSpree) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareSpree.ProtoReflect.Descriptor instead. func (*WelfareSpree) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{44} + return file_common_proto_rawDescGZIP(), []int{45} } func (x *WelfareSpree) GetDay() int32 { @@ -4881,7 +4968,7 @@ type WelfareFirstPayDataList struct { func (x *WelfareFirstPayDataList) Reset() { *x = WelfareFirstPayDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[45] + mi := &file_common_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4894,7 +4981,7 @@ func (x *WelfareFirstPayDataList) String() string { func (*WelfareFirstPayDataList) ProtoMessage() {} func (x *WelfareFirstPayDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[45] + mi := &file_common_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4907,7 +4994,7 @@ func (x *WelfareFirstPayDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareFirstPayDataList.ProtoReflect.Descriptor instead. func (*WelfareFirstPayDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{45} + return file_common_proto_rawDescGZIP(), []int{46} } func (x *WelfareFirstPayDataList) GetList() []*WelfareSpree { @@ -4954,7 +5041,7 @@ type WelfareContinuousPayDataList struct { func (x *WelfareContinuousPayDataList) Reset() { *x = WelfareContinuousPayDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[46] + mi := &file_common_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4967,7 +5054,7 @@ func (x *WelfareContinuousPayDataList) String() string { func (*WelfareContinuousPayDataList) ProtoMessage() {} func (x *WelfareContinuousPayDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[46] + mi := &file_common_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4980,7 +5067,7 @@ func (x *WelfareContinuousPayDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareContinuousPayDataList.ProtoReflect.Descriptor instead. func (*WelfareContinuousPayDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{46} + return file_common_proto_rawDescGZIP(), []int{47} } func (x *WelfareContinuousPayDataList) GetList() []*WelfareSpree { @@ -5045,7 +5132,7 @@ type VIPcfg struct { func (x *VIPcfg) Reset() { *x = VIPcfg{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[47] + mi := &file_common_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5058,7 +5145,7 @@ func (x *VIPcfg) String() string { func (*VIPcfg) ProtoMessage() {} func (x *VIPcfg) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[47] + mi := &file_common_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5071,7 +5158,7 @@ func (x *VIPcfg) ProtoReflect() protoreflect.Message { // Deprecated: Use VIPcfg.ProtoReflect.Descriptor instead. func (*VIPcfg) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{47} + return file_common_proto_rawDescGZIP(), []int{48} } func (x *VIPcfg) GetVipId() int32 { @@ -5207,7 +5294,7 @@ type VIPcfgDataList struct { func (x *VIPcfgDataList) Reset() { *x = VIPcfgDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[48] + mi := &file_common_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5220,7 +5307,7 @@ func (x *VIPcfgDataList) String() string { func (*VIPcfgDataList) ProtoMessage() {} func (x *VIPcfgDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[48] + mi := &file_common_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5233,7 +5320,7 @@ func (x *VIPcfgDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use VIPcfgDataList.ProtoReflect.Descriptor instead. func (*VIPcfgDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{48} + return file_common_proto_rawDescGZIP(), []int{49} } func (x *VIPcfgDataList) GetList() []*VIPcfg { @@ -5272,7 +5359,7 @@ type WbCtrlCfg struct { func (x *WbCtrlCfg) Reset() { *x = WbCtrlCfg{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[49] + mi := &file_common_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5285,7 +5372,7 @@ func (x *WbCtrlCfg) String() string { func (*WbCtrlCfg) ProtoMessage() {} func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[49] + mi := &file_common_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5298,7 +5385,7 @@ func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { // Deprecated: Use WbCtrlCfg.ProtoReflect.Descriptor instead. func (*WbCtrlCfg) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{49} + return file_common_proto_rawDescGZIP(), []int{50} } func (x *WbCtrlCfg) GetPlatform() string { @@ -5351,7 +5438,7 @@ type EntrySwitch struct { func (x *EntrySwitch) Reset() { *x = EntrySwitch{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[50] + mi := &file_common_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5364,7 +5451,7 @@ func (x *EntrySwitch) String() string { func (*EntrySwitch) ProtoMessage() {} func (x *EntrySwitch) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[50] + mi := &file_common_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5377,7 +5464,7 @@ func (x *EntrySwitch) ProtoReflect() protoreflect.Message { // Deprecated: Use EntrySwitch.ProtoReflect.Descriptor instead. func (*EntrySwitch) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{50} + return file_common_proto_rawDescGZIP(), []int{51} } func (x *EntrySwitch) GetPlatform() string { @@ -5414,7 +5501,7 @@ type ChessRankConfig struct { func (x *ChessRankConfig) Reset() { *x = ChessRankConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[51] + mi := &file_common_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5427,7 +5514,7 @@ func (x *ChessRankConfig) String() string { func (*ChessRankConfig) ProtoMessage() {} func (x *ChessRankConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[51] + mi := &file_common_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5440,7 +5527,7 @@ func (x *ChessRankConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ChessRankConfig.ProtoReflect.Descriptor instead. func (*ChessRankConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{51} + return file_common_proto_rawDescGZIP(), []int{52} } func (x *ChessRankConfig) GetName() string { @@ -5477,7 +5564,7 @@ type ChessRankcfgData struct { func (x *ChessRankcfgData) Reset() { *x = ChessRankcfgData{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[52] + mi := &file_common_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5490,7 +5577,7 @@ func (x *ChessRankcfgData) String() string { func (*ChessRankcfgData) ProtoMessage() {} func (x *ChessRankcfgData) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[52] + mi := &file_common_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5503,7 +5590,7 @@ func (x *ChessRankcfgData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChessRankcfgData.ProtoReflect.Descriptor instead. func (*ChessRankcfgData) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{52} + return file_common_proto_rawDescGZIP(), []int{53} } func (x *ChessRankcfgData) GetDatas() []*ChessRankConfig { @@ -5551,7 +5638,7 @@ type PlayerPool struct { func (x *PlayerPool) Reset() { *x = PlayerPool{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[53] + mi := &file_common_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5564,7 +5651,7 @@ func (x *PlayerPool) String() string { func (*PlayerPool) ProtoMessage() {} func (x *PlayerPool) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[53] + mi := &file_common_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5577,7 +5664,7 @@ func (x *PlayerPool) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayerPool.ProtoReflect.Descriptor instead. func (*PlayerPool) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{53} + return file_common_proto_rawDescGZIP(), []int{54} } func (x *PlayerPool) GetPlatform() string { @@ -5695,7 +5782,7 @@ type GameConfig struct { func (x *GameConfig) Reset() { *x = GameConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[54] + mi := &file_common_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5708,7 +5795,7 @@ func (x *GameConfig) String() string { func (*GameConfig) ProtoMessage() {} func (x *GameConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[54] + mi := &file_common_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5721,7 +5808,7 @@ func (x *GameConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use GameConfig.ProtoReflect.Descriptor instead. func (*GameConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{54} + return file_common_proto_rawDescGZIP(), []int{55} } func (x *GameConfig) GetPlatform() string { @@ -5786,7 +5873,7 @@ type WelfarePhoneLotteryStatus struct { func (x *WelfarePhoneLotteryStatus) Reset() { *x = WelfarePhoneLotteryStatus{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[55] + mi := &file_common_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5799,7 +5886,7 @@ func (x *WelfarePhoneLotteryStatus) String() string { func (*WelfarePhoneLotteryStatus) ProtoMessage() {} func (x *WelfarePhoneLotteryStatus) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[55] + mi := &file_common_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5812,7 +5899,7 @@ func (x *WelfarePhoneLotteryStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfarePhoneLotteryStatus.ProtoReflect.Descriptor instead. func (*WelfarePhoneLotteryStatus) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{55} + return file_common_proto_rawDescGZIP(), []int{56} } func (x *WelfarePhoneLotteryStatus) GetPlatform() string { @@ -5842,7 +5929,7 @@ type WelfareCollectConfig struct { func (x *WelfareCollectConfig) Reset() { *x = WelfareCollectConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[56] + mi := &file_common_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5855,7 +5942,7 @@ func (x *WelfareCollectConfig) String() string { func (*WelfareCollectConfig) ProtoMessage() {} func (x *WelfareCollectConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[56] + mi := &file_common_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5868,7 +5955,7 @@ func (x *WelfareCollectConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareCollectConfig.ProtoReflect.Descriptor instead. func (*WelfareCollectConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{56} + return file_common_proto_rawDescGZIP(), []int{57} } func (x *WelfareCollectConfig) GetPlatform() string { @@ -5891,7 +5978,7 @@ type ChannelSwitchConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1.兑换 2.道具掉落 + Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1.兑换 2.道具掉落 3.邀请活动开关 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id OnChannelName []string `protobuf:"bytes,3,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 } @@ -5899,7 +5986,7 @@ type ChannelSwitchConfig struct { func (x *ChannelSwitchConfig) Reset() { *x = ChannelSwitchConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[57] + mi := &file_common_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5912,7 +5999,7 @@ func (x *ChannelSwitchConfig) String() string { func (*ChannelSwitchConfig) ProtoMessage() {} func (x *ChannelSwitchConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[57] + mi := &file_common_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5925,7 +6012,7 @@ func (x *ChannelSwitchConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelSwitchConfig.ProtoReflect.Descriptor instead. func (*ChannelSwitchConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{57} + return file_common_proto_rawDescGZIP(), []int{58} } func (x *ChannelSwitchConfig) GetTp() int32 { @@ -5949,6 +6036,173 @@ func (x *ChannelSwitchConfig) GetOnChannelName() []string { return nil } +type RankAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始积分 + End int64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束积分 + Num int64 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` // 奖励 +} + +func (x *RankAward) Reset() { + *x = RankAward{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankAward) ProtoMessage() {} + +func (x *RankAward) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RankAward.ProtoReflect.Descriptor instead. +func (*RankAward) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{59} +} + +func (x *RankAward) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *RankAward) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +func (x *RankAward) GetNum() int64 { + if x != nil { + return x.Num + } + return 0 +} + +// etcd /game/act_invite +type ActInviteConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` + BindScore int64 `protobuf:"varint,2,opt,name=BindScore,proto3" json:"BindScore,omitempty"` // 绑定积分 + RechargeScore int64 `protobuf:"varint,3,opt,name=RechargeScore,proto3" json:"RechargeScore,omitempty"` // 充值积分,一个玩家最多给上级贡献一次 + PayScore map[int64]int64 `protobuf:"bytes,4,rep,name=PayScore,proto3" json:"PayScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 充值积分;充值金额:获得积分 + Rates []int64 `protobuf:"varint,5,rep,packed,name=Rates,proto3" json:"Rates,omitempty"` // 返佣比例;多级按顺序给 + Awards1 []*RankAward `protobuf:"bytes,6,rep,name=Awards1,proto3" json:"Awards1,omitempty"` // 周榜奖励列表 + Awards2 []*RankAward `protobuf:"bytes,7,rep,name=Awards2,proto3" json:"Awards2,omitempty"` // 周榜奖励列表 + Awards3 []*RankAward `protobuf:"bytes,8,rep,name=Awards3,proto3" json:"Awards3,omitempty"` // 周榜奖励列表 +} + +func (x *ActInviteConfig) Reset() { + *x = ActInviteConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActInviteConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActInviteConfig) ProtoMessage() {} + +func (x *ActInviteConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActInviteConfig.ProtoReflect.Descriptor instead. +func (*ActInviteConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{60} +} + +func (x *ActInviteConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ActInviteConfig) GetBindScore() int64 { + if x != nil { + return x.BindScore + } + return 0 +} + +func (x *ActInviteConfig) GetRechargeScore() int64 { + if x != nil { + return x.RechargeScore + } + return 0 +} + +func (x *ActInviteConfig) GetPayScore() map[int64]int64 { + if x != nil { + return x.PayScore + } + return nil +} + +func (x *ActInviteConfig) GetRates() []int64 { + if x != nil { + return x.Rates + } + return nil +} + +func (x *ActInviteConfig) GetAwards1() []*RankAward { + if x != nil { + return x.Awards1 + } + return nil +} + +func (x *ActInviteConfig) GetAwards2() []*RankAward { + if x != nil { + return x.Awards2 + } + return nil +} + +func (x *ActInviteConfig) GetAwards3() []*RankAward { + if x != nil { + return x.Awards3 + } + return nil +} + var File_common_proto protoreflect.FileDescriptor var file_common_proto_rawDesc = []byte{ @@ -6698,219 +6952,266 @@ var file_common_proto_rawDesc = []byte{ 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, - 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, - 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, - 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, - 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, - 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, - 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, - 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, - 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, + 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, + 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, + 0x75, 0x6d, 0x22, 0xc9, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, + 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, + 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x41, 0x64, + 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, + 0x61, 0x74, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, + 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, + 0x61, 0x74, 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x41, 0x64, + 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x78, + 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, + 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, + 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, + 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, + 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, + 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, + 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, + 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x79, 0x63, 0x6c, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x72, 0x65, + 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x22, + 0xc4, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, + 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, + 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, + 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, + 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, + 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x38, 0x0a, + 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4d, 0x6f, + 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, + 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x22, 0x57, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, + 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x63, 0x66, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, + 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, + 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, 0x69, 0x67, 0x68, + 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, + 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xc8, 0x01, + 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x69, 0x4b, + 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x12, 0x16, + 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x65, 0x6e, + 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, + 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x6f, + 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, 0x19, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, 0x0a, 0x14, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, - 0x72, 0x65, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x72, 0x65, 0x61, - 0x6b, 0x22, 0xc4, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, - 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, - 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, - 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, - 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, - 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, - 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, - 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, - 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, - 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, - 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, - 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x22, 0x57, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, - 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x64, 0x0a, 0x0f, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, - 0x6d, 0x22, 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x63, 0x66, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x44, - 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x4f, 0x64, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, - 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, - 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x46, - 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, 0x69, - 0x67, 0x68, 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, - 0x77, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, - 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, - 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x79, 0x44, - 0x6f, 0x77, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, - 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, - 0xc8, 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x69, 0x4b, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, - 0x12, 0x16, 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x65, 0x6e, 0x43, - 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, - 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x6f, - 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, 0x19, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, 0x0a, 0x14, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, - 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, + 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x45, + 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x8e, 0x03, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x50, 0x61, 0x79, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x52, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x52, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, + 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x2b, 0x0a, 0x07, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x61, 0x79, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, + 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6925,7 +7226,7 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 67) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -6967,50 +7268,54 @@ var file_common_proto_goTypes = []interface{}{ (*WelfareTurnplateRate)(nil), // 37: webapi.WelfareTurnplateRate (*WelfareTurnplateDateList)(nil), // 38: webapi.WelfareTurnplateDateList (*AddUpWelfareDate)(nil), // 39: webapi.AddUpWelfareDate - (*Welfare7SignDate)(nil), // 40: webapi.Welfare7SignDate - (*Welfare7SignDateList)(nil), // 41: webapi.Welfare7SignDateList - (*BlindBoxData)(nil), // 42: webapi.BlindBoxData - (*WelfareBlindBoxDataList)(nil), // 43: webapi.WelfareBlindBoxDataList - (*WelfareSpree)(nil), // 44: webapi.WelfareSpree - (*WelfareFirstPayDataList)(nil), // 45: webapi.WelfareFirstPayDataList - (*WelfareContinuousPayDataList)(nil), // 46: webapi.WelfareContinuousPayDataList - (*VIPcfg)(nil), // 47: webapi.VIPcfg - (*VIPcfgDataList)(nil), // 48: webapi.VIPcfgDataList - (*WbCtrlCfg)(nil), // 49: webapi.WbCtrlCfg - (*EntrySwitch)(nil), // 50: webapi.EntrySwitch - (*ChessRankConfig)(nil), // 51: webapi.ChessRankConfig - (*ChessRankcfgData)(nil), // 52: webapi.ChessRankcfgData - (*PlayerPool)(nil), // 53: webapi.PlayerPool - (*GameConfig)(nil), // 54: webapi.GameConfig - (*WelfarePhoneLotteryStatus)(nil), // 55: webapi.WelfarePhoneLotteryStatus - (*WelfareCollectConfig)(nil), // 56: webapi.WelfareCollectConfig - (*ChannelSwitchConfig)(nil), // 57: webapi.ChannelSwitchConfig - nil, // 58: webapi.Platform.BindTelRewardEntry - nil, // 59: webapi.PlayerData.RankScoreEntry - nil, // 60: webapi.ItemShop.AwardEntry - nil, // 61: webapi.VIPcfg.AwardEntry - nil, // 62: webapi.VIPcfg.Privilege7Entry - (*server.DB_GameFree)(nil), // 63: server.DB_GameFree + (*AddUpDate2TypeData)(nil), // 40: webapi.AddUpDate2TypeData + (*Welfare7SignDate)(nil), // 41: webapi.Welfare7SignDate + (*Welfare7SignDateList)(nil), // 42: webapi.Welfare7SignDateList + (*BlindBoxData)(nil), // 43: webapi.BlindBoxData + (*WelfareBlindBoxDataList)(nil), // 44: webapi.WelfareBlindBoxDataList + (*WelfareSpree)(nil), // 45: webapi.WelfareSpree + (*WelfareFirstPayDataList)(nil), // 46: webapi.WelfareFirstPayDataList + (*WelfareContinuousPayDataList)(nil), // 47: webapi.WelfareContinuousPayDataList + (*VIPcfg)(nil), // 48: webapi.VIPcfg + (*VIPcfgDataList)(nil), // 49: webapi.VIPcfgDataList + (*WbCtrlCfg)(nil), // 50: webapi.WbCtrlCfg + (*EntrySwitch)(nil), // 51: webapi.EntrySwitch + (*ChessRankConfig)(nil), // 52: webapi.ChessRankConfig + (*ChessRankcfgData)(nil), // 53: webapi.ChessRankcfgData + (*PlayerPool)(nil), // 54: webapi.PlayerPool + (*GameConfig)(nil), // 55: webapi.GameConfig + (*WelfarePhoneLotteryStatus)(nil), // 56: webapi.WelfarePhoneLotteryStatus + (*WelfareCollectConfig)(nil), // 57: webapi.WelfareCollectConfig + (*ChannelSwitchConfig)(nil), // 58: webapi.ChannelSwitchConfig + (*RankAward)(nil), // 59: webapi.RankAward + (*ActInviteConfig)(nil), // 60: webapi.ActInviteConfig + nil, // 61: webapi.Platform.BindTelRewardEntry + nil, // 62: webapi.PlayerData.RankScoreEntry + nil, // 63: webapi.ItemShop.AwardEntry + nil, // 64: webapi.VIPcfg.AwardEntry + nil, // 65: webapi.VIPcfg.Privilege7Entry + nil, // 66: webapi.ActInviteConfig.PayScoreEntry + (*server.DB_GameFree)(nil), // 67: server.DB_GameFree } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 58, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 61, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 63, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 67, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 63, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 59, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 67, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 62, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 29, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 20, // 13: webapi.OnlineReport.GameCount:type_name -> webapi.OnlineGameCnt 22, // 14: webapi.CommonNoticeList.List:type_name -> webapi.CommonNotice 25, // 15: webapi.ExchangeShop.ExType:type_name -> webapi.ExchangeType 24, // 16: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop - 60, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 63, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 27, // 18: webapi.ItemShopList.List:type_name -> webapi.ItemShop 29, // 19: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 30, // 20: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -7023,21 +7328,28 @@ var file_common_proto_depIdxs = []int32{ 35, // 27: webapi.AddUpWelfareDate.AddUpDate:type_name -> webapi.WelfareDate 35, // 28: webapi.Welfare7SignDate.Date:type_name -> webapi.WelfareDate 39, // 29: webapi.Welfare7SignDate.AddUpDate:type_name -> webapi.AddUpWelfareDate - 40, // 30: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate - 42, // 31: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData - 35, // 32: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate - 44, // 33: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree - 44, // 34: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 61, // 35: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 62, // 36: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 47, // 37: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg - 35, // 38: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate - 51, // 39: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 40, // [40:40] is the sub-list for method output_type - 40, // [40:40] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 39, // 30: webapi.Welfare7SignDate.AddUpDate2:type_name -> webapi.AddUpWelfareDate + 39, // 31: webapi.Welfare7SignDate.AddUpDate2Google:type_name -> webapi.AddUpWelfareDate + 40, // 32: webapi.Welfare7SignDate.AddUpDate2Type:type_name -> webapi.AddUpDate2TypeData + 41, // 33: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate + 43, // 34: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData + 35, // 35: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate + 45, // 36: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree + 45, // 37: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree + 64, // 38: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 65, // 39: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 48, // 40: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg + 35, // 41: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate + 52, // 42: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig + 66, // 43: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 59, // 44: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward + 59, // 45: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward + 59, // 46: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward + 47, // [47:47] is the sub-list for method output_type + 47, // [47:47] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -7527,7 +7839,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDate); i { + switch v := v.(*AddUpDate2TypeData); i { case 0: return &v.state case 1: @@ -7539,7 +7851,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDateList); i { + switch v := v.(*Welfare7SignDate); i { case 0: return &v.state case 1: @@ -7551,7 +7863,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlindBoxData); i { + switch v := v.(*Welfare7SignDateList); i { case 0: return &v.state case 1: @@ -7563,7 +7875,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareBlindBoxDataList); i { + switch v := v.(*BlindBoxData); i { case 0: return &v.state case 1: @@ -7575,7 +7887,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareSpree); i { + switch v := v.(*WelfareBlindBoxDataList); i { case 0: return &v.state case 1: @@ -7587,7 +7899,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareFirstPayDataList); i { + switch v := v.(*WelfareSpree); i { case 0: return &v.state case 1: @@ -7599,7 +7911,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareContinuousPayDataList); i { + switch v := v.(*WelfareFirstPayDataList); i { case 0: return &v.state case 1: @@ -7611,7 +7923,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VIPcfg); i { + switch v := v.(*WelfareContinuousPayDataList); i { case 0: return &v.state case 1: @@ -7623,7 +7935,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VIPcfgDataList); i { + switch v := v.(*VIPcfg); i { case 0: return &v.state case 1: @@ -7635,7 +7947,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WbCtrlCfg); i { + switch v := v.(*VIPcfgDataList); i { case 0: return &v.state case 1: @@ -7647,7 +7959,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EntrySwitch); i { + switch v := v.(*WbCtrlCfg); i { case 0: return &v.state case 1: @@ -7659,7 +7971,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChessRankConfig); i { + switch v := v.(*EntrySwitch); i { case 0: return &v.state case 1: @@ -7671,7 +7983,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChessRankcfgData); i { + switch v := v.(*ChessRankConfig); i { case 0: return &v.state case 1: @@ -7683,7 +7995,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlayerPool); i { + switch v := v.(*ChessRankcfgData); i { case 0: return &v.state case 1: @@ -7695,7 +8007,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameConfig); i { + switch v := v.(*PlayerPool); i { case 0: return &v.state case 1: @@ -7707,7 +8019,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfarePhoneLotteryStatus); i { + switch v := v.(*GameConfig); i { case 0: return &v.state case 1: @@ -7719,7 +8031,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareCollectConfig); i { + switch v := v.(*WelfarePhoneLotteryStatus); i { case 0: return &v.state case 1: @@ -7731,6 +8043,18 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WelfareCollectConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChannelSwitchConfig); i { case 0: return &v.state @@ -7742,6 +8066,30 @@ func file_common_proto_init() { return nil } } + file_common_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActInviteConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -7749,7 +8097,7 @@ func file_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 0, - NumMessages: 63, + NumMessages: 67, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 3a131bd..75557ca 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -496,11 +496,20 @@ message AddUpWelfareDate { int32 AddUpDay = 1; // 累计几天 repeated WelfareDate AddUpDate = 2; // 累计奖励 } +message AddUpDate2TypeData { + int32 Day = 1; + int32 Id = 2; + int32 Num = 3; +} + message Welfare7SignDate { int32 Day = 1; // 第几天 repeated WelfareDate Date = 2; // 奖励 repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励 + repeated AddUpWelfareDate AddUpDate2 = 4; //进阶奖励 + repeated AddUpWelfareDate AddUpDate2Google = 5; //谷歌渠道进阶奖励 + repeated AddUpDate2TypeData AddUpDate2Type = 6; //进阶奖励领取条件 } @@ -655,7 +664,25 @@ message WelfareCollectConfig{ // etcd /game/channel/switch message ChannelSwitchConfig{ - int32 Tp = 1; // 开关类型 1.兑换 2.道具掉落 + int32 Tp = 1; // 开关类型 1.兑换 2.道具掉落 3.邀请活动开关 string Platform = 2; // 平台id repeated string OnChannelName = 3; // 开启渠道 +} + +message RankAward{ + int64 Start = 1; // 开始积分 + int64 End = 2; // 结束积分 + int64 Num = 3; // 奖励 +} + +// etcd /game/act_invite +message ActInviteConfig { + string Platform = 1; + int64 BindScore = 2; // 绑定积分 + int64 RechargeScore = 3; // 充值积分,一个玩家最多给上级贡献一次 + map PayScore = 4; // 充值积分;充值金额:获得积分 + repeated int64 Rates = 5; // 返佣比例;多级按顺序给 + repeated RankAward Awards1 = 6; // 周榜奖励列表 + repeated RankAward Awards2 = 7; // 周榜奖励列表 + repeated RankAward Awards3 = 8; // 周榜奖励列表 } \ No newline at end of file diff --git a/protocol/webapi/webapi.pb.go b/protocol/webapi/webapi.pb.go index 35e9cc2..9f91692 100644 --- a/protocol/webapi/webapi.pb.go +++ b/protocol/webapi/webapi.pb.go @@ -7895,6 +7895,7 @@ type ASGetMatchAwardCode struct { Money int64 `protobuf:"varint,4,opt,name=Money,proto3" json:"Money,omitempty"` // 金额 Tel string `protobuf:"bytes,5,opt,name=Tel,proto3" json:"Tel,omitempty"` // 手机号 CardType int32 `protobuf:"varint,6,opt,name=CardType,proto3" json:"CardType,omitempty"` // 手机卡类型 + Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` //备注信息 } func (x *ASGetMatchAwardCode) Reset() { @@ -7971,6 +7972,13 @@ func (x *ASGetMatchAwardCode) GetCardType() int32 { return 0 } +func (x *ASGetMatchAwardCode) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + type SAGetMatchAwardCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8645,6 +8653,196 @@ func (x *SAAddItemById) GetMsg() string { return "" } +//获取运营商配置[/get_SMSConfig] +type ASSMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id +} + +func (x *ASSMSConfig) Reset() { + *x = ASSMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASSMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASSMSConfig) ProtoMessage() {} + +func (x *ASSMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ASSMSConfig.ProtoReflect.Descriptor instead. +func (*ASSMSConfig) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{127} +} + +func (x *ASSMSConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ASSMSConfig) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +type SASMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id + Info []*SMSInfo `protobuf:"bytes,3,rep,name=Info,proto3" json:"Info,omitempty"` + Tag TagCode `protobuf:"varint,4,opt,name=Tag,proto3,enum=webapi.TagCode" json:"Tag,omitempty"` //错误码 + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` //错误信息(选填) +} + +func (x *SASMSConfig) Reset() { + *x = SASMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SASMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SASMSConfig) ProtoMessage() {} + +func (x *SASMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SASMSConfig.ProtoReflect.Descriptor instead. +func (*SASMSConfig) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{128} +} + +func (x *SASMSConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *SASMSConfig) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *SASMSConfig) GetInfo() []*SMSInfo { + if x != nil { + return x.Info + } + return nil +} + +func (x *SASMSConfig) GetTag() TagCode { + if x != nil { + return x.Tag + } + return TagCode_UNKNOWN +} + +func (x *SASMSConfig) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type SMSInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SmsName string `protobuf:"bytes,2,opt,name=SmsName,proto3" json:"SmsName,omitempty"` +} + +func (x *SMSInfo) Reset() { + *x = SMSInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SMSInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SMSInfo) ProtoMessage() {} + +func (x *SMSInfo) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SMSInfo.ProtoReflect.Descriptor instead. +func (*SMSInfo) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{129} +} + +func (x *SMSInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SMSInfo) GetSmsName() string { + if x != nil { + return x.SmsName + } + return "" +} + var File_webapi_proto protoreflect.FileDescriptor var file_webapi_proto_rawDesc = []byte{ @@ -9509,7 +9707,7 @@ var file_webapi_proto_rawDesc = []byte{ 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x41, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x22, 0xb9, 0x01, 0x0a, 0x13, 0x41, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, @@ -9519,83 +9717,101 @@ var file_webapi_proto_rawDesc = []byte{ 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x13, 0x53, 0x41, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, - 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x0b, 0x41, 0x53, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x42, 0x0a, 0x0b, 0x53, - 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, - 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x22, 0x0a, 0x0e, 0x41, 0x53, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x54, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x0e, 0x53, 0x41, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0e, - 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x45, - 0x0a, 0x0e, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, - 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x44, 0x0a, 0x12, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x12, 0x53, - 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, - 0x6b, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x9d, 0x01, 0x0a, 0x0d, 0x41, - 0x53, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2c, 0x0a, 0x08, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x41, - 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x03, 0x54, - 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x2a, 0xce, 0x01, 0x0a, 0x07, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, - 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, - 0x4a, 0x59, 0x42, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x06, - 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x58, 0x49, 0x53, - 0x54, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x08, 0x12, 0x0c, - 0x0a, 0x08, 0x54, 0x65, 0x6c, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x10, - 0x0b, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x74, 0x0a, 0x13, + 0x53, 0x41, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, + 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x0b, 0x41, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, + 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x54, 0x65, 0x6c, 0x22, 0x42, 0x0a, 0x0b, 0x53, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x53, 0x47, 0x65, 0x74, + 0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x0e, 0x53, + 0x41, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x21, 0x0a, + 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, + 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0e, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x0e, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, + 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x44, 0x0a, + 0x12, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, + 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x12, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x69, + 0x6e, 0x6b, 0x22, 0x9d, 0x01, 0x0a, 0x0d, 0x41, 0x53, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x41, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, + 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3d, 0x0a, 0x0b, 0x41, 0x53, 0x53, 0x4d, + 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x53, 0x41, 0x53, 0x4d, + 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x03, + 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, + 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, + 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0xce, 0x01, 0x0a, 0x07, 0x54, 0x61, 0x67, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x47, 0x4e, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x12, + 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x58, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x5f, 0x4e, + 0x6f, 0x74, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x65, 0x6c, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x4e, 0x6f, + 0x74, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x0b, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -9611,7 +9827,7 @@ func file_webapi_proto_rawDescGZIP() []byte { } var file_webapi_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 127) +var file_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 130) var file_webapi_proto_goTypes = []interface{}{ (TagCode)(0), // 0: webapi.TagCode (*SAPlatformInfo)(nil), // 1: webapi.SAPlatformInfo @@ -9741,92 +9957,95 @@ var file_webapi_proto_goTypes = []interface{}{ (*SAPlayerInviteLink)(nil), // 125: webapi.SAPlayerInviteLink (*ASAddItemById)(nil), // 126: webapi.ASAddItemById (*SAAddItemById)(nil), // 127: webapi.SAAddItemById - (*Platform)(nil), // 128: webapi.Platform - (*PlatformGameConfig)(nil), // 129: webapi.PlatformGameConfig - (*GameConfigGroup)(nil), // 130: webapi.GameConfigGroup - (*GameConfigGlobal)(nil), // 131: webapi.GameConfigGlobal - (*PlatformDbConfig)(nil), // 132: webapi.PlatformDbConfig - (*CoinPoolSetting)(nil), // 133: webapi.CoinPoolSetting - (*RoomInfo)(nil), // 134: webapi.RoomInfo - (*PlayerSingleAdjust)(nil), // 135: webapi.PlayerSingleAdjust - (*PlayerData)(nil), // 136: webapi.PlayerData - (*HorseRaceLamp)(nil), // 137: webapi.HorseRaceLamp - (*MessageInfo)(nil), // 138: webapi.MessageInfo - (*ServerInfo)(nil), // 139: webapi.ServerInfo - (*OnlineReport)(nil), // 140: webapi.OnlineReport - (*ItemInfo)(nil), // 141: webapi.ItemInfo - (*ExchangeShop)(nil), // 142: webapi.ExchangeShop + (*ASSMSConfig)(nil), // 128: webapi.ASSMSConfig + (*SASMSConfig)(nil), // 129: webapi.SASMSConfig + (*SMSInfo)(nil), // 130: webapi.SMSInfo + (*Platform)(nil), // 131: webapi.Platform + (*PlatformGameConfig)(nil), // 132: webapi.PlatformGameConfig + (*GameConfigGroup)(nil), // 133: webapi.GameConfigGroup + (*GameConfigGlobal)(nil), // 134: webapi.GameConfigGlobal + (*PlatformDbConfig)(nil), // 135: webapi.PlatformDbConfig + (*CoinPoolSetting)(nil), // 136: webapi.CoinPoolSetting + (*RoomInfo)(nil), // 137: webapi.RoomInfo + (*PlayerSingleAdjust)(nil), // 138: webapi.PlayerSingleAdjust + (*PlayerData)(nil), // 139: webapi.PlayerData + (*HorseRaceLamp)(nil), // 140: webapi.HorseRaceLamp + (*MessageInfo)(nil), // 141: webapi.MessageInfo + (*ServerInfo)(nil), // 142: webapi.ServerInfo + (*OnlineReport)(nil), // 143: webapi.OnlineReport + (*ItemInfo)(nil), // 144: webapi.ItemInfo + (*ExchangeShop)(nil), // 145: webapi.ExchangeShop } var file_webapi_proto_depIdxs = []int32{ 0, // 0: webapi.ASPlatformInfo.Tag:type_name -> webapi.TagCode - 128, // 1: webapi.ASPlatformInfo.Platforms:type_name -> webapi.Platform + 131, // 1: webapi.ASPlatformInfo.Platforms:type_name -> webapi.Platform 0, // 2: webapi.ASGameConfig.Tag:type_name -> webapi.TagCode - 129, // 3: webapi.ASGameConfig.Configs:type_name -> webapi.PlatformGameConfig + 132, // 3: webapi.ASGameConfig.Configs:type_name -> webapi.PlatformGameConfig 0, // 4: webapi.ASGameConfigGroup.Tag:type_name -> webapi.TagCode - 130, // 5: webapi.ASGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup + 133, // 5: webapi.ASGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup 0, // 6: webapi.ASGameConfigGlobal.Tag:type_name -> webapi.TagCode - 131, // 7: webapi.ASGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal + 134, // 7: webapi.ASGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal 0, // 8: webapi.ASDbConfig.Tag:type_name -> webapi.TagCode - 132, // 9: webapi.ASDbConfig.DbConfigs:type_name -> webapi.PlatformDbConfig - 128, // 10: webapi.ASUpdatePlatform.Platforms:type_name -> webapi.Platform + 135, // 9: webapi.ASDbConfig.DbConfigs:type_name -> webapi.PlatformDbConfig + 131, // 10: webapi.ASUpdatePlatform.Platforms:type_name -> webapi.Platform 0, // 11: webapi.SAUpdatePlatform.Tag:type_name -> webapi.TagCode - 131, // 12: webapi.ASUpdateGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal + 134, // 12: webapi.ASUpdateGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal 0, // 13: webapi.SAUpdateGameConfigGlobal.Tag:type_name -> webapi.TagCode - 129, // 14: webapi.ASUpdateGameConfig.Config:type_name -> webapi.PlatformGameConfig + 132, // 14: webapi.ASUpdateGameConfig.Config:type_name -> webapi.PlatformGameConfig 0, // 15: webapi.SAUpdateGameConfig.Tag:type_name -> webapi.TagCode - 130, // 16: webapi.ASUpdateGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup + 133, // 16: webapi.ASUpdateGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup 0, // 17: webapi.SAUpdateGameConfigGroup.Tag:type_name -> webapi.TagCode 0, // 18: webapi.SAAddCoinById.Tag:type_name -> webapi.TagCode 0, // 19: webapi.SAResetGamePool.Tag:type_name -> webapi.TagCode - 133, // 20: webapi.ASUpdateGamePool.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 20: webapi.ASUpdateGamePool.CoinPoolSetting:type_name -> webapi.CoinPoolSetting 0, // 21: webapi.SAUpdateGamePool.Tag:type_name -> webapi.TagCode 0, // 22: webapi.SAQueryGamePoolByGameId.Tag:type_name -> webapi.TagCode - 133, // 23: webapi.SAQueryGamePoolByGameId.CoinPoolSetting:type_name -> webapi.CoinPoolSetting - 133, // 24: webapi.CoinPoolStatesInfo.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 23: webapi.SAQueryGamePoolByGameId.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 24: webapi.CoinPoolStatesInfo.CoinPoolSetting:type_name -> webapi.CoinPoolSetting 0, // 25: webapi.SAQueryAllGamePool.Tag:type_name -> webapi.TagCode 26, // 26: webapi.SAQueryAllGamePool.CoinPoolStatesInfo:type_name -> webapi.CoinPoolStatesInfo 0, // 27: webapi.SAListRoom.Tag:type_name -> webapi.TagCode - 134, // 28: webapi.SAListRoom.RoomInfo:type_name -> webapi.RoomInfo + 137, // 28: webapi.SAListRoom.RoomInfo:type_name -> webapi.RoomInfo 0, // 29: webapi.SAGetRoom.Tag:type_name -> webapi.TagCode - 134, // 30: webapi.SAGetRoom.RoomInfo:type_name -> webapi.RoomInfo + 137, // 30: webapi.SAGetRoom.RoomInfo:type_name -> webapi.RoomInfo 0, // 31: webapi.SADestroyRoom.Tag:type_name -> webapi.TagCode - 135, // 32: webapi.ASSinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust + 138, // 32: webapi.ASSinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust 0, // 33: webapi.SASinglePlayerAdjust.Tag:type_name -> webapi.TagCode - 135, // 34: webapi.SASinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust + 138, // 34: webapi.SASinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust 0, // 35: webapi.SAGetPlayerData.Tag:type_name -> webapi.TagCode - 136, // 36: webapi.SAGetPlayerData.PlayerData:type_name -> webapi.PlayerData + 139, // 36: webapi.SAGetPlayerData.PlayerData:type_name -> webapi.PlayerData 0, // 37: webapi.SAMorePlayerData.Tag:type_name -> webapi.TagCode - 136, // 38: webapi.SAMorePlayerData.PlayerData:type_name -> webapi.PlayerData + 139, // 38: webapi.SAMorePlayerData.PlayerData:type_name -> webapi.PlayerData 0, // 39: webapi.SAKickPlayer.Tag:type_name -> webapi.TagCode 42, // 40: webapi.ASUpdatePlayerElement.PlayerEleArgs:type_name -> webapi.PlayerEleArgs 0, // 41: webapi.SAUpdatePlayerElement.Tag:type_name -> webapi.TagCode 0, // 42: webapi.SAWhiteBlackControl.Tag:type_name -> webapi.TagCode 0, // 43: webapi.SAQueryHorseRaceLampList.Tag:type_name -> webapi.TagCode - 137, // 44: webapi.SAQueryHorseRaceLampList.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 44: webapi.SAQueryHorseRaceLampList.HorseRaceLamp:type_name -> webapi.HorseRaceLamp 0, // 45: webapi.SACreateHorseRaceLamp.Tag:type_name -> webapi.TagCode 0, // 46: webapi.SAGetHorseRaceLampById.Tag:type_name -> webapi.TagCode - 137, // 47: webapi.SAGetHorseRaceLampById.HorseRaceLamp:type_name -> webapi.HorseRaceLamp - 137, // 48: webapi.ASEditHorseRaceLamp.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 47: webapi.SAGetHorseRaceLampById.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 48: webapi.ASEditHorseRaceLamp.HorseRaceLamp:type_name -> webapi.HorseRaceLamp 0, // 49: webapi.SAEditHorseRaceLamp.Tag:type_name -> webapi.TagCode 0, // 50: webapi.SARemoveHorseRaceLampById.Tag:type_name -> webapi.TagCode 0, // 51: webapi.SABlackBySnId.Tag:type_name -> webapi.TagCode 0, // 52: webapi.SACreateShortMessage.Tag:type_name -> webapi.TagCode 0, // 53: webapi.SAQueryShortMessageList.Tag:type_name -> webapi.TagCode - 138, // 54: webapi.SAQueryShortMessageList.MessageInfo:type_name -> webapi.MessageInfo + 141, // 54: webapi.SAQueryShortMessageList.MessageInfo:type_name -> webapi.MessageInfo 0, // 55: webapi.SADeleteShortMessage.Tag:type_name -> webapi.TagCode 0, // 56: webapi.SAQueryOnlineReportList.Tag:type_name -> webapi.TagCode - 136, // 57: webapi.SAQueryOnlineReportList.PlayerData:type_name -> webapi.PlayerData + 139, // 57: webapi.SAQueryOnlineReportList.PlayerData:type_name -> webapi.PlayerData 0, // 58: webapi.SASrvCtrlClose.Tag:type_name -> webapi.TagCode 0, // 59: webapi.SASrvCtrlNotice.Tag:type_name -> webapi.TagCode 0, // 60: webapi.SASrvCtrlStartScript.Tag:type_name -> webapi.TagCode 0, // 61: webapi.SAListServerStates.Tag:type_name -> webapi.TagCode - 139, // 62: webapi.SAListServerStates.ServerInfo:type_name -> webapi.ServerInfo + 142, // 62: webapi.SAListServerStates.ServerInfo:type_name -> webapi.ServerInfo 0, // 63: webapi.SAServerStateSwitch.Tag:type_name -> webapi.TagCode 0, // 64: webapi.SAResetEtcdData.Tag:type_name -> webapi.TagCode 0, // 65: webapi.SAOnlineReportTotal.Tag:type_name -> webapi.TagCode - 140, // 66: webapi.SAOnlineReportTotal.OnlineReport:type_name -> webapi.OnlineReport + 143, // 66: webapi.SAOnlineReportTotal.OnlineReport:type_name -> webapi.OnlineReport 0, // 67: webapi.SAAddCoinByIdAndPT.Tag:type_name -> webapi.TagCode - 141, // 68: webapi.JybInfoAward.ItemId:type_name -> webapi.ItemInfo + 144, // 68: webapi.JybInfoAward.ItemId:type_name -> webapi.ItemInfo 83, // 69: webapi.ASCreateJYB.Award:type_name -> webapi.JybInfoAward 0, // 70: webapi.SACreateJYB.Tag:type_name -> webapi.TagCode 0, // 71: webapi.SAUpdateJYB.Tag:type_name -> webapi.TagCode @@ -9838,9 +10057,9 @@ var file_webapi_proto_depIdxs = []int32{ 94, // 77: webapi.SAGetExchangeOrder.OrderList:type_name -> webapi.ExchangeOrderInfo 0, // 78: webapi.SAUpExchangeStatus.Tag:type_name -> webapi.TagCode 0, // 79: webapi.SAGetExchangeShop.Tag:type_name -> webapi.TagCode - 142, // 80: webapi.SAGetExchangeShop.List:type_name -> webapi.ExchangeShop + 145, // 80: webapi.SAGetExchangeShop.List:type_name -> webapi.ExchangeShop 0, // 81: webapi.SAThdUpdatePlayerCoin.Tag:type_name -> webapi.TagCode - 141, // 82: webapi.SACreateOrder.ItemInfo:type_name -> webapi.ItemInfo + 144, // 82: webapi.SACreateOrder.ItemInfo:type_name -> webapi.ItemInfo 0, // 83: webapi.SACallbackPayment.Tag:type_name -> webapi.TagCode 0, // 84: webapi.SAResource.Tag:type_name -> webapi.TagCode 0, // 85: webapi.SASendSms.Tag:type_name -> webapi.TagCode @@ -9849,13 +10068,15 @@ var file_webapi_proto_depIdxs = []int32{ 0, // 88: webapi.SAGetImgVerify.Tag:type_name -> webapi.TagCode 0, // 89: webapi.SAPlayerDelete.Tag:type_name -> webapi.TagCode 0, // 90: webapi.SAPlayerInviteLink.Tag:type_name -> webapi.TagCode - 141, // 91: webapi.ASAddItemById.ItemInfo:type_name -> webapi.ItemInfo + 144, // 91: webapi.ASAddItemById.ItemInfo:type_name -> webapi.ItemInfo 0, // 92: webapi.SAAddItemById.Tag:type_name -> webapi.TagCode - 93, // [93:93] is the sub-list for method output_type - 93, // [93:93] is the sub-list for method input_type - 93, // [93:93] is the sub-list for extension type_name - 93, // [93:93] is the sub-list for extension extendee - 0, // [0:93] is the sub-list for field type_name + 130, // 93: webapi.SASMSConfig.Info:type_name -> webapi.SMSInfo + 0, // 94: webapi.SASMSConfig.Tag:type_name -> webapi.TagCode + 95, // [95:95] is the sub-list for method output_type + 95, // [95:95] is the sub-list for method input_type + 95, // [95:95] is the sub-list for extension type_name + 95, // [95:95] is the sub-list for extension extendee + 0, // [0:95] is the sub-list for field type_name } func init() { file_webapi_proto_init() } @@ -11389,6 +11610,42 @@ func file_webapi_proto_init() { return nil } } + file_webapi_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_webapi_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SASMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_webapi_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SMSInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -11396,7 +11653,7 @@ func file_webapi_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_webapi_proto_rawDesc, NumEnums: 1, - NumMessages: 127, + NumMessages: 130, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/webapi.proto b/protocol/webapi/webapi.proto index cc6a79f..2dad83d 100644 --- a/protocol/webapi/webapi.proto +++ b/protocol/webapi/webapi.proto @@ -859,6 +859,7 @@ message ASGetMatchAwardCode{ int64 Money = 4; // 金额 string Tel = 5; // 手机号 int32 CardType = 6; // 手机卡类型 + string remark = 7; //备注信息 } message SAGetMatchAwardCode{ TagCode Tag = 1; //错误码 @@ -922,3 +923,19 @@ message SAAddItemById{ TagCode Tag = 1; //错误码 string Msg = 2; //错误信息(选填) } +//获取运营商配置[/get_SMSConfig] +message ASSMSConfig{ + string Platform = 1; // 平台id + int32 SnId = 2; // 玩家id +} +message SASMSConfig{ + string Platform = 1; // 平台id + int32 SnId = 2; // 玩家id + repeated SMSInfo Info = 3; + TagCode Tag = 4; //错误码 + string Msg = 5; //错误信息(选填) +} +message SMSInfo{ + int32 Id = 1; + string SmsName = 2; +} diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 2bef3c9..651f6f1 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -101,39 +101,44 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) { type SPacketID int32 const ( - SPacketID_PACKET_SHOP_ZERO SPacketID = 0 // 弃用消息号 - SPacketID_PACKET_CS_WELF_GETRELIEFFUND SPacketID = 2580 //领取救济金 - SPacketID_PACKET_SC_WELF_GETRELIEFFUND SPacketID = 2581 //领取救济金 - SPacketID_PACKET_CS_WELF_GETTURNPLATE SPacketID = 2582 //转动转盘 - SPacketID_PACKET_SC_WELF_GETTURNPLATE SPacketID = 2583 //转动转盘 - SPacketID_PACKET_CS_WELF_GETADDUPSIGN SPacketID = 2584 //累计签到 - SPacketID_PACKET_SC_WELF_GETADDUPSIGN SPacketID = 2585 //累计签到 - SPacketID_PACKET_CS_WELF_WELFAREINFO SPacketID = 2586 //福利信息 - SPacketID_PACKET_SC_WELF_WELFAREINFO SPacketID = 2587 //福利信息 - SPacketID_PACKET_CS_WELF_BLINBOXINFO SPacketID = 2588 //转动盲盒 - SPacketID_PACKET_SC_WELF_BLINBOXINFO SPacketID = 2589 //转动盲盒 - SPacketID_PACKET_CS_WELF_GETBLINBOX SPacketID = 2590 //领取盲盒 - SPacketID_PACKET_SC_WELF_GETBLINBOX SPacketID = 2591 //领取盲盒 - SPacketID_PACKET_CS_WELF_FIRSTPAYINFO SPacketID = 2592 //首充礼包信息 - SPacketID_PACKET_SC_WELF_FIRSTPAYINFO SPacketID = 2593 //首充礼包信息 - SPacketID_PACKET_CS_WELF_FIRSTPAY SPacketID = 2594 //领取(购买)首充 后期走充值回调 - SPacketID_PACKET_SC_WELF_FIRSTPAY SPacketID = 2595 //领取首充 - SPacketID_PACKET_CS_WELF_CONTINPAYINFO SPacketID = 2596 //连续充值信息 - SPacketID_PACKET_SC_WELF_CONTINPAYINFO SPacketID = 2597 //连续充值信息 - SPacketID_PACKET_CS_WELF_CONTINPAY SPacketID = 2598 //领取(购买)连续充值 后期走充值回调 - SPacketID_PACKET_SC_WELF_CONTINPAY SPacketID = 2599 //领取连续充值 + SPacketID_PACKET_SHOP_ZERO SPacketID = 0 // 弃用消息号 + SPacketID_PACKET_CS_WELF_GETRELIEFFUND SPacketID = 2580 //领取救济金 + SPacketID_PACKET_SC_WELF_GETRELIEFFUND SPacketID = 2581 //领取救济金 + SPacketID_PACKET_CS_WELF_GETTURNPLATE SPacketID = 2582 //转动转盘 + SPacketID_PACKET_SC_WELF_GETTURNPLATE SPacketID = 2583 //转动转盘 + SPacketID_PACKET_CS_WELF_GETADDUPSIGN SPacketID = 2584 //累计签到 + SPacketID_PACKET_SC_WELF_GETADDUPSIGN SPacketID = 2585 //累计签到 + SPacketID_PACKET_CS_WELF_WELFAREINFO SPacketID = 2586 //福利信息 + SPacketID_PACKET_SC_WELF_WELFAREINFO SPacketID = 2587 //福利信息 + SPacketID_PACKET_CS_WELF_BLINBOXINFO SPacketID = 2588 //转动盲盒 + SPacketID_PACKET_SC_WELF_BLINBOXINFO SPacketID = 2589 //转动盲盒 + SPacketID_PACKET_CS_WELF_GETBLINBOX SPacketID = 2590 //领取盲盒 + SPacketID_PACKET_SC_WELF_GETBLINBOX SPacketID = 2591 //领取盲盒 + SPacketID_PACKET_CS_WELF_FIRSTPAYINFO SPacketID = 2592 //首充礼包信息 + SPacketID_PACKET_SC_WELF_FIRSTPAYINFO SPacketID = 2593 //首充礼包信息 + SPacketID_PACKET_CS_WELF_FIRSTPAY SPacketID = 2594 //领取(购买)首充 后期走充值回调 + SPacketID_PACKET_SC_WELF_FIRSTPAY SPacketID = 2595 //领取首充 + SPacketID_PACKET_CS_WELF_CONTINPAYINFO SPacketID = 2596 //连续充值信息 + SPacketID_PACKET_SC_WELF_CONTINPAYINFO SPacketID = 2597 //连续充值信息 + SPacketID_PACKET_CS_WELF_CONTINPAY SPacketID = 2598 //领取(购买)连续充值 后期走充值回调 + SPacketID_PACKET_SC_WELF_CONTINPAY SPacketID = 2599 //领取连续充值 + SPacketID_PACKET_CS_SignDay_Addup2Award SPacketID = 2600 //领取七日签到进阶奖励 + SPacketID_PACKET_SC_SignDay_Addup2Award SPacketID = 2601 //返回七日签到进阶奖励 // 2900~2999 SPacketID_PACKET_CSWelfRelief SPacketID = 2900 //救济金信息 SPacketID_PACKET_SCWelfRelief SPacketID = 2901 //救济金信息 // 邀请活动 - SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 - SPacketID_PACKET_SCInviteInfo SPacketID = 2903 //邀请信息 - SPacketID_PACKET_CSBindInvite SPacketID = 2904 //绑定邀请人 - SPacketID_PACKET_SCBindInvite SPacketID = 2905 //绑定邀请人 - SPacketID_PACKET_CSPigbankGetInfo SPacketID = 2910 // 存钱罐信息获取 - SPacketID_PACKET_SCPigbankGetInfo SPacketID = 2911 // 存钱罐信息获取 - SPacketID_PACKET_CSPigbankTakeCoin SPacketID = 2912 // 存钱罐领取金币 - SPacketID_PACKET_SCPigbankTakeCoin SPacketID = 2913 // 存钱罐领取金币 + SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 + SPacketID_PACKET_SCInviteInfo SPacketID = 2903 //邀请信息 + SPacketID_PACKET_CSBindInvite SPacketID = 2904 //绑定邀请人 + SPacketID_PACKET_SCBindInvite SPacketID = 2905 //绑定邀请人 + SPacketID_PACKET_CSPigbankGetInfo SPacketID = 2910 // 存钱罐信息获取 + SPacketID_PACKET_SCPigbankGetInfo SPacketID = 2911 // 存钱罐信息获取 + SPacketID_PACKET_CSPigbankTakeCoin SPacketID = 2912 // 存钱罐领取金币 + SPacketID_PACKET_SCPigbankTakeCoin SPacketID = 2913 // 存钱罐领取金币 + SPacketID_PACKET_CSDiamondBankGetInfo SPacketID = 2914 //钻石存钱罐信息获取 + SPacketID_PACKET_SCDiamondBankGetInfo SPacketID = 2915 //钻石存钱罐信息返回 + SPacketID_PACKET_SCDiamondBankTakeDiamond SPacketID = 2916 //钻石存钱罐领取返回 ) // Enum value maps for SPacketID. @@ -160,6 +165,8 @@ var ( 2597: "PACKET_SC_WELF_CONTINPAYINFO", 2598: "PACKET_CS_WELF_CONTINPAY", 2599: "PACKET_SC_WELF_CONTINPAY", + 2600: "PACKET_CS_SignDay_Addup2Award", + 2601: "PACKET_SC_SignDay_Addup2Award", 2900: "PACKET_CSWelfRelief", 2901: "PACKET_SCWelfRelief", 2902: "PACKET_CSInviteInfo", @@ -170,39 +177,47 @@ var ( 2911: "PACKET_SCPigbankGetInfo", 2912: "PACKET_CSPigbankTakeCoin", 2913: "PACKET_SCPigbankTakeCoin", + 2914: "PACKET_CSDiamondBankGetInfo", + 2915: "PACKET_SCDiamondBankGetInfo", + 2916: "PACKET_SCDiamondBankTakeDiamond", } SPacketID_value = map[string]int32{ - "PACKET_SHOP_ZERO": 0, - "PACKET_CS_WELF_GETRELIEFFUND": 2580, - "PACKET_SC_WELF_GETRELIEFFUND": 2581, - "PACKET_CS_WELF_GETTURNPLATE": 2582, - "PACKET_SC_WELF_GETTURNPLATE": 2583, - "PACKET_CS_WELF_GETADDUPSIGN": 2584, - "PACKET_SC_WELF_GETADDUPSIGN": 2585, - "PACKET_CS_WELF_WELFAREINFO": 2586, - "PACKET_SC_WELF_WELFAREINFO": 2587, - "PACKET_CS_WELF_BLINBOXINFO": 2588, - "PACKET_SC_WELF_BLINBOXINFO": 2589, - "PACKET_CS_WELF_GETBLINBOX": 2590, - "PACKET_SC_WELF_GETBLINBOX": 2591, - "PACKET_CS_WELF_FIRSTPAYINFO": 2592, - "PACKET_SC_WELF_FIRSTPAYINFO": 2593, - "PACKET_CS_WELF_FIRSTPAY": 2594, - "PACKET_SC_WELF_FIRSTPAY": 2595, - "PACKET_CS_WELF_CONTINPAYINFO": 2596, - "PACKET_SC_WELF_CONTINPAYINFO": 2597, - "PACKET_CS_WELF_CONTINPAY": 2598, - "PACKET_SC_WELF_CONTINPAY": 2599, - "PACKET_CSWelfRelief": 2900, - "PACKET_SCWelfRelief": 2901, - "PACKET_CSInviteInfo": 2902, - "PACKET_SCInviteInfo": 2903, - "PACKET_CSBindInvite": 2904, - "PACKET_SCBindInvite": 2905, - "PACKET_CSPigbankGetInfo": 2910, - "PACKET_SCPigbankGetInfo": 2911, - "PACKET_CSPigbankTakeCoin": 2912, - "PACKET_SCPigbankTakeCoin": 2913, + "PACKET_SHOP_ZERO": 0, + "PACKET_CS_WELF_GETRELIEFFUND": 2580, + "PACKET_SC_WELF_GETRELIEFFUND": 2581, + "PACKET_CS_WELF_GETTURNPLATE": 2582, + "PACKET_SC_WELF_GETTURNPLATE": 2583, + "PACKET_CS_WELF_GETADDUPSIGN": 2584, + "PACKET_SC_WELF_GETADDUPSIGN": 2585, + "PACKET_CS_WELF_WELFAREINFO": 2586, + "PACKET_SC_WELF_WELFAREINFO": 2587, + "PACKET_CS_WELF_BLINBOXINFO": 2588, + "PACKET_SC_WELF_BLINBOXINFO": 2589, + "PACKET_CS_WELF_GETBLINBOX": 2590, + "PACKET_SC_WELF_GETBLINBOX": 2591, + "PACKET_CS_WELF_FIRSTPAYINFO": 2592, + "PACKET_SC_WELF_FIRSTPAYINFO": 2593, + "PACKET_CS_WELF_FIRSTPAY": 2594, + "PACKET_SC_WELF_FIRSTPAY": 2595, + "PACKET_CS_WELF_CONTINPAYINFO": 2596, + "PACKET_SC_WELF_CONTINPAYINFO": 2597, + "PACKET_CS_WELF_CONTINPAY": 2598, + "PACKET_SC_WELF_CONTINPAY": 2599, + "PACKET_CS_SignDay_Addup2Award": 2600, + "PACKET_SC_SignDay_Addup2Award": 2601, + "PACKET_CSWelfRelief": 2900, + "PACKET_SCWelfRelief": 2901, + "PACKET_CSInviteInfo": 2902, + "PACKET_SCInviteInfo": 2903, + "PACKET_CSBindInvite": 2904, + "PACKET_SCBindInvite": 2905, + "PACKET_CSPigbankGetInfo": 2910, + "PACKET_SCPigbankGetInfo": 2911, + "PACKET_CSPigbankTakeCoin": 2912, + "PACKET_SCPigbankTakeCoin": 2913, + "PACKET_CSDiamondBankGetInfo": 2914, + "PACKET_SCDiamondBankGetInfo": 2915, + "PACKET_SCDiamondBankTakeDiamond": 2916, } ) @@ -417,6 +432,69 @@ func (x *WelfareDate) GetItem_Id() int32 { return 0 } +type AddUp2TypeDate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 1,代表观看视频 2,代表钻石类型 + Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` //完成次数 +} + +func (x *AddUp2TypeDate) Reset() { + *x = AddUp2TypeDate{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUp2TypeDate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUp2TypeDate) ProtoMessage() {} + +func (x *AddUp2TypeDate) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUp2TypeDate.ProtoReflect.Descriptor instead. +func (*AddUp2TypeDate) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{3} +} + +func (x *AddUp2TypeDate) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *AddUp2TypeDate) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddUp2TypeDate) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + //转动转盘 //PACKET_CS_WELF_GETTURNPLATE type CSGetTurnplate struct { @@ -430,7 +508,7 @@ type CSGetTurnplate struct { func (x *CSGetTurnplate) Reset() { *x = CSGetTurnplate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[3] + mi := &file_welfare_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -443,7 +521,7 @@ func (x *CSGetTurnplate) String() string { func (*CSGetTurnplate) ProtoMessage() {} func (x *CSGetTurnplate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[3] + mi := &file_welfare_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -456,7 +534,7 @@ func (x *CSGetTurnplate) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetTurnplate.ProtoReflect.Descriptor instead. func (*CSGetTurnplate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{3} + return file_welfare_proto_rawDescGZIP(), []int{4} } func (x *CSGetTurnplate) GetIsVideo() bool { @@ -482,7 +560,7 @@ type SCGetTurnplate struct { func (x *SCGetTurnplate) Reset() { *x = SCGetTurnplate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[4] + mi := &file_welfare_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +573,7 @@ func (x *SCGetTurnplate) String() string { func (*SCGetTurnplate) ProtoMessage() {} func (x *SCGetTurnplate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[4] + mi := &file_welfare_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +586,7 @@ func (x *SCGetTurnplate) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetTurnplate.ProtoReflect.Descriptor instead. func (*SCGetTurnplate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{4} + return file_welfare_proto_rawDescGZIP(), []int{5} } func (x *SCGetTurnplate) GetOpRetCode() OpResultCode { @@ -551,14 +629,16 @@ type AddUpWelfareDate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AddUpDay int32 `protobuf:"varint,1,opt,name=AddUpDay,proto3" json:"AddUpDay,omitempty"` // 累计几天 - AddUpDate []*WelfareDate `protobuf:"bytes,2,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUpDay int32 `protobuf:"varint,1,opt,name=AddUpDay,proto3" json:"AddUpDay,omitempty"` // 累计几天 + AddUpDate []*WelfareDate `protobuf:"bytes,2,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUp2Date []*WelfareDate `protobuf:"bytes,3,rep,name=AddUp2Date,proto3" json:"AddUp2Date,omitempty"` //进阶奖励 + AddUp2Type []*AddUp2TypeDate `protobuf:"bytes,4,rep,name=AddUp2Type,proto3" json:"AddUp2Type,omitempty"` //进阶奖励领取条件 } func (x *AddUpWelfareDate) Reset() { *x = AddUpWelfareDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[5] + mi := &file_welfare_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -571,7 +651,7 @@ func (x *AddUpWelfareDate) String() string { func (*AddUpWelfareDate) ProtoMessage() {} func (x *AddUpWelfareDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[5] + mi := &file_welfare_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -584,7 +664,7 @@ func (x *AddUpWelfareDate) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUpWelfareDate.ProtoReflect.Descriptor instead. func (*AddUpWelfareDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{5} + return file_welfare_proto_rawDescGZIP(), []int{6} } func (x *AddUpWelfareDate) GetAddUpDay() int32 { @@ -601,6 +681,20 @@ func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate { return nil } +func (x *AddUpWelfareDate) GetAddUp2Date() []*WelfareDate { + if x != nil { + return x.AddUp2Date + } + return nil +} + +func (x *AddUpWelfareDate) GetAddUp2Type() []*AddUp2TypeDate { + if x != nil { + return x.AddUp2Type + } + return nil +} + //累计签到 //PACKET_CS_WELF_GETADDUPSIGN type CSGetAddupSign struct { @@ -614,7 +708,7 @@ type CSGetAddupSign struct { func (x *CSGetAddupSign) Reset() { *x = CSGetAddupSign{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[6] + mi := &file_welfare_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -627,7 +721,7 @@ func (x *CSGetAddupSign) String() string { func (*CSGetAddupSign) ProtoMessage() {} func (x *CSGetAddupSign) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[6] + mi := &file_welfare_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -640,7 +734,7 @@ func (x *CSGetAddupSign) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetAddupSign.ProtoReflect.Descriptor instead. func (*CSGetAddupSign) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{6} + return file_welfare_proto_rawDescGZIP(), []int{7} } func (x *CSGetAddupSign) GetAddUpDay() int32 { @@ -664,7 +758,7 @@ type SCGetAddupSign struct { func (x *SCGetAddupSign) Reset() { *x = SCGetAddupSign{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[7] + mi := &file_welfare_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +771,7 @@ func (x *SCGetAddupSign) String() string { func (*SCGetAddupSign) ProtoMessage() {} func (x *SCGetAddupSign) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[7] + mi := &file_welfare_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +784,7 @@ func (x *SCGetAddupSign) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetAddupSign.ProtoReflect.Descriptor instead. func (*SCGetAddupSign) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{7} + return file_welfare_proto_rawDescGZIP(), []int{8} } func (x *SCGetAddupSign) GetOpRetCode() OpResultCode { @@ -725,7 +819,7 @@ type CSWelfaredInfo struct { func (x *CSWelfaredInfo) Reset() { *x = CSWelfaredInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[8] + mi := &file_welfare_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -738,7 +832,7 @@ func (x *CSWelfaredInfo) String() string { func (*CSWelfaredInfo) ProtoMessage() {} func (x *CSWelfaredInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[8] + mi := &file_welfare_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -751,7 +845,7 @@ func (x *CSWelfaredInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfaredInfo.ProtoReflect.Descriptor instead. func (*CSWelfaredInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{8} + return file_welfare_proto_rawDescGZIP(), []int{9} } type WelfareTurnplateDate struct { @@ -766,7 +860,7 @@ type WelfareTurnplateDate struct { func (x *WelfareTurnplateDate) Reset() { *x = WelfareTurnplateDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[9] + mi := &file_welfare_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +873,7 @@ func (x *WelfareTurnplateDate) String() string { func (*WelfareTurnplateDate) ProtoMessage() {} func (x *WelfareTurnplateDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[9] + mi := &file_welfare_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,7 +886,7 @@ func (x *WelfareTurnplateDate) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareTurnplateDate.ProtoReflect.Descriptor instead. func (*WelfareTurnplateDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{9} + return file_welfare_proto_rawDescGZIP(), []int{10} } func (x *WelfareTurnplateDate) GetId() int32 { @@ -822,7 +916,7 @@ type Welfare7SignDate struct { func (x *Welfare7SignDate) Reset() { *x = Welfare7SignDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[10] + mi := &file_welfare_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -835,7 +929,7 @@ func (x *Welfare7SignDate) String() string { func (*Welfare7SignDate) ProtoMessage() {} func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[10] + mi := &file_welfare_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -848,7 +942,7 @@ func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDate.ProtoReflect.Descriptor instead. func (*Welfare7SignDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{10} + return file_welfare_proto_rawDescGZIP(), []int{11} } func (x *Welfare7SignDate) GetDay() int32 { @@ -872,6 +966,69 @@ func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate { return nil } +type Addup2Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` //天数 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //任务次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间戳 -1代表已领取 +} + +func (x *Addup2Data) Reset() { + *x = Addup2Data{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Addup2Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Addup2Data) ProtoMessage() {} + +func (x *Addup2Data) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Addup2Data.ProtoReflect.Descriptor instead. +func (*Addup2Data) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{12} +} + +func (x *Addup2Data) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *Addup2Data) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *Addup2Data) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + //PACKET_SC_WELF_WELFAREINFO type SCWelfaredInfo struct { state protoimpl.MessageState @@ -885,12 +1042,13 @@ type SCWelfaredInfo struct { AddUpSignDay []int32 `protobuf:"varint,5,rep,packed,name=AddUpSignDay,proto3" json:"AddUpSignDay,omitempty"` // 已领取累计奖励天数 TurnplateIdx []int32 `protobuf:"varint,6,rep,packed,name=TurnplateIdx,proto3" json:"TurnplateIdx,omitempty"` // 已领取转盘奖励下标0开始 Switch int32 `protobuf:"varint,7,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 + Addup2 []*Addup2Data `protobuf:"bytes,8,rep,name=Addup2,proto3" json:"Addup2,omitempty"` //七日签到进阶奖励数据 } func (x *SCWelfaredInfo) Reset() { *x = SCWelfaredInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[11] + mi := &file_welfare_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -903,7 +1061,7 @@ func (x *SCWelfaredInfo) String() string { func (*SCWelfaredInfo) ProtoMessage() {} func (x *SCWelfaredInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[11] + mi := &file_welfare_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -916,7 +1074,7 @@ func (x *SCWelfaredInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfaredInfo.ProtoReflect.Descriptor instead. func (*SCWelfaredInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{11} + return file_welfare_proto_rawDescGZIP(), []int{13} } func (x *SCWelfaredInfo) GetTlist() []*WelfareTurnplateDate { @@ -968,6 +1126,126 @@ func (x *SCWelfaredInfo) GetSwitch() int32 { return 0 } +func (x *SCWelfaredInfo) GetAddup2() []*Addup2Data { + if x != nil { + return x.Addup2 + } + return nil +} + +//领取7日签到累计进阶奖励 +//PACKET_CS_SignDay_Addup2Award +type CSSignDayAddup2Award struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` +} + +func (x *CSSignDayAddup2Award) Reset() { + *x = CSSignDayAddup2Award{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSSignDayAddup2Award) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSSignDayAddup2Award) ProtoMessage() {} + +func (x *CSSignDayAddup2Award) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSSignDayAddup2Award.ProtoReflect.Descriptor instead. +func (*CSSignDayAddup2Award) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{14} +} + +func (x *CSSignDayAddup2Award) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +//PACKET_SC_SignDay_Addup2Award +type SCSignDayAddup2Award struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` //天数 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //任务次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间戳 -1代表已领取 +} + +func (x *SCSignDayAddup2Award) Reset() { + *x = SCSignDayAddup2Award{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCSignDayAddup2Award) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCSignDayAddup2Award) ProtoMessage() {} + +func (x *SCSignDayAddup2Award) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCSignDayAddup2Award.ProtoReflect.Descriptor instead. +func (*SCSignDayAddup2Award) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{15} +} + +func (x *SCSignDayAddup2Award) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *SCSignDayAddup2Award) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *SCSignDayAddup2Award) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + type BlindBoxData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -987,7 +1265,7 @@ type BlindBoxData struct { func (x *BlindBoxData) Reset() { *x = BlindBoxData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[12] + mi := &file_welfare_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1000,7 +1278,7 @@ func (x *BlindBoxData) String() string { func (*BlindBoxData) ProtoMessage() {} func (x *BlindBoxData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[12] + mi := &file_welfare_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1013,7 +1291,7 @@ func (x *BlindBoxData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindBoxData.ProtoReflect.Descriptor instead. func (*BlindBoxData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{12} + return file_welfare_proto_rawDescGZIP(), []int{16} } func (x *BlindBoxData) GetId() int32 { @@ -1092,7 +1370,7 @@ type CSBlindBoxInfo struct { func (x *CSBlindBoxInfo) Reset() { *x = CSBlindBoxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[13] + mi := &file_welfare_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1105,7 +1383,7 @@ func (x *CSBlindBoxInfo) String() string { func (*CSBlindBoxInfo) ProtoMessage() {} func (x *CSBlindBoxInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[13] + mi := &file_welfare_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1118,7 +1396,7 @@ func (x *CSBlindBoxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSBlindBoxInfo.ProtoReflect.Descriptor instead. func (*CSBlindBoxInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{13} + return file_welfare_proto_rawDescGZIP(), []int{17} } func (x *CSBlindBoxInfo) GetId() int32 { @@ -1144,7 +1422,7 @@ type SCBlindBoxInfo struct { func (x *SCBlindBoxInfo) Reset() { *x = SCBlindBoxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[14] + mi := &file_welfare_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1157,7 +1435,7 @@ func (x *SCBlindBoxInfo) String() string { func (*SCBlindBoxInfo) ProtoMessage() {} func (x *SCBlindBoxInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[14] + mi := &file_welfare_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1170,7 +1448,7 @@ func (x *SCBlindBoxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCBlindBoxInfo.ProtoReflect.Descriptor instead. func (*SCBlindBoxInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{14} + return file_welfare_proto_rawDescGZIP(), []int{18} } func (x *SCBlindBoxInfo) GetOpRetCode() OpResultCode { @@ -1221,7 +1499,7 @@ type CSGetBlindBox struct { func (x *CSGetBlindBox) Reset() { *x = CSGetBlindBox{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[15] + mi := &file_welfare_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1234,7 +1512,7 @@ func (x *CSGetBlindBox) String() string { func (*CSGetBlindBox) ProtoMessage() {} func (x *CSGetBlindBox) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[15] + mi := &file_welfare_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1247,7 +1525,7 @@ func (x *CSGetBlindBox) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetBlindBox.ProtoReflect.Descriptor instead. func (*CSGetBlindBox) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{15} + return file_welfare_proto_rawDescGZIP(), []int{19} } func (x *CSGetBlindBox) GetId() int32 { @@ -1269,7 +1547,7 @@ type SCGetBlindBox struct { func (x *SCGetBlindBox) Reset() { *x = SCGetBlindBox{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[16] + mi := &file_welfare_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1282,7 +1560,7 @@ func (x *SCGetBlindBox) String() string { func (*SCGetBlindBox) ProtoMessage() {} func (x *SCGetBlindBox) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[16] + mi := &file_welfare_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1295,7 +1573,7 @@ func (x *SCGetBlindBox) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetBlindBox.ProtoReflect.Descriptor instead. func (*SCGetBlindBox) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{16} + return file_welfare_proto_rawDescGZIP(), []int{20} } func (x *SCGetBlindBox) GetOpRetCode() OpResultCode { @@ -1322,7 +1600,7 @@ type WelfareSpree struct { func (x *WelfareSpree) Reset() { *x = WelfareSpree{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[17] + mi := &file_welfare_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1335,7 +1613,7 @@ func (x *WelfareSpree) String() string { func (*WelfareSpree) ProtoMessage() {} func (x *WelfareSpree) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[17] + mi := &file_welfare_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1348,7 +1626,7 @@ func (x *WelfareSpree) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareSpree.ProtoReflect.Descriptor instead. func (*WelfareSpree) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{17} + return file_welfare_proto_rawDescGZIP(), []int{21} } func (x *WelfareSpree) GetDay() int32 { @@ -1410,7 +1688,7 @@ type CSWelfareFirstPayData struct { func (x *CSWelfareFirstPayData) Reset() { *x = CSWelfareFirstPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[18] + mi := &file_welfare_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1423,7 +1701,7 @@ func (x *CSWelfareFirstPayData) String() string { func (*CSWelfareFirstPayData) ProtoMessage() {} func (x *CSWelfareFirstPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[18] + mi := &file_welfare_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1436,7 +1714,7 @@ func (x *CSWelfareFirstPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareFirstPayData.ProtoReflect.Descriptor instead. func (*CSWelfareFirstPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{18} + return file_welfare_proto_rawDescGZIP(), []int{22} } //PACKET_SC_WELF_FIRSTPAYINFO @@ -1455,7 +1733,7 @@ type SCWelfareFirstPayData struct { func (x *SCWelfareFirstPayData) Reset() { *x = SCWelfareFirstPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[19] + mi := &file_welfare_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1746,7 @@ func (x *SCWelfareFirstPayData) String() string { func (*SCWelfareFirstPayData) ProtoMessage() {} func (x *SCWelfareFirstPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[19] + mi := &file_welfare_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1759,7 @@ func (x *SCWelfareFirstPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareFirstPayData.ProtoReflect.Descriptor instead. func (*SCWelfareFirstPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{19} + return file_welfare_proto_rawDescGZIP(), []int{23} } func (x *SCWelfareFirstPayData) GetOpRetCode() OpResultCode { @@ -1529,7 +1807,7 @@ type CSWelfareFirstPay struct { func (x *CSWelfareFirstPay) Reset() { *x = CSWelfareFirstPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[20] + mi := &file_welfare_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1542,7 +1820,7 @@ func (x *CSWelfareFirstPay) String() string { func (*CSWelfareFirstPay) ProtoMessage() {} func (x *CSWelfareFirstPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[20] + mi := &file_welfare_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1555,7 +1833,7 @@ func (x *CSWelfareFirstPay) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareFirstPay.ProtoReflect.Descriptor instead. func (*CSWelfareFirstPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{20} + return file_welfare_proto_rawDescGZIP(), []int{24} } //PACKET_SC_WELF_FIRSTPAY @@ -1570,7 +1848,7 @@ type SCWelfareFirstPay struct { func (x *SCWelfareFirstPay) Reset() { *x = SCWelfareFirstPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[21] + mi := &file_welfare_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1583,7 +1861,7 @@ func (x *SCWelfareFirstPay) String() string { func (*SCWelfareFirstPay) ProtoMessage() {} func (x *SCWelfareFirstPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[21] + mi := &file_welfare_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1596,7 +1874,7 @@ func (x *SCWelfareFirstPay) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareFirstPay.ProtoReflect.Descriptor instead. func (*SCWelfareFirstPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{21} + return file_welfare_proto_rawDescGZIP(), []int{25} } func (x *SCWelfareFirstPay) GetOpRetCode() OpResultCode { @@ -1616,7 +1894,7 @@ type CSWelfareContinuousPayData struct { func (x *CSWelfareContinuousPayData) Reset() { *x = CSWelfareContinuousPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[22] + mi := &file_welfare_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1629,7 +1907,7 @@ func (x *CSWelfareContinuousPayData) String() string { func (*CSWelfareContinuousPayData) ProtoMessage() {} func (x *CSWelfareContinuousPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[22] + mi := &file_welfare_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1642,7 +1920,7 @@ func (x *CSWelfareContinuousPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareContinuousPayData.ProtoReflect.Descriptor instead. func (*CSWelfareContinuousPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{22} + return file_welfare_proto_rawDescGZIP(), []int{26} } //PACKET_SC_WELF_CONTINPAYINFO @@ -1662,7 +1940,7 @@ type SCWelfareContinuousPayData struct { func (x *SCWelfareContinuousPayData) Reset() { *x = SCWelfareContinuousPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[23] + mi := &file_welfare_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1675,7 +1953,7 @@ func (x *SCWelfareContinuousPayData) String() string { func (*SCWelfareContinuousPayData) ProtoMessage() {} func (x *SCWelfareContinuousPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[23] + mi := &file_welfare_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1688,7 +1966,7 @@ func (x *SCWelfareContinuousPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareContinuousPayData.ProtoReflect.Descriptor instead. func (*SCWelfareContinuousPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{23} + return file_welfare_proto_rawDescGZIP(), []int{27} } func (x *SCWelfareContinuousPayData) GetOpRetCode() OpResultCode { @@ -1743,7 +2021,7 @@ type CSWelfareContinuousPay struct { func (x *CSWelfareContinuousPay) Reset() { *x = CSWelfareContinuousPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[24] + mi := &file_welfare_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1756,7 +2034,7 @@ func (x *CSWelfareContinuousPay) String() string { func (*CSWelfareContinuousPay) ProtoMessage() {} func (x *CSWelfareContinuousPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[24] + mi := &file_welfare_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1769,7 +2047,7 @@ func (x *CSWelfareContinuousPay) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareContinuousPay.ProtoReflect.Descriptor instead. func (*CSWelfareContinuousPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{24} + return file_welfare_proto_rawDescGZIP(), []int{28} } //PACKET_SC_WELF_CONTINPAY @@ -1784,7 +2062,7 @@ type SCWelfareContinuousPay struct { func (x *SCWelfareContinuousPay) Reset() { *x = SCWelfareContinuousPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[25] + mi := &file_welfare_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1797,7 +2075,7 @@ func (x *SCWelfareContinuousPay) String() string { func (*SCWelfareContinuousPay) ProtoMessage() {} func (x *SCWelfareContinuousPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[25] + mi := &file_welfare_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1810,7 +2088,7 @@ func (x *SCWelfareContinuousPay) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareContinuousPay.ProtoReflect.Descriptor instead. func (*SCWelfareContinuousPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{25} + return file_welfare_proto_rawDescGZIP(), []int{29} } func (x *SCWelfareContinuousPay) GetOpRetCode() OpResultCode { @@ -1831,7 +2109,7 @@ type CSWelfareRelief struct { func (x *CSWelfareRelief) Reset() { *x = CSWelfareRelief{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[26] + mi := &file_welfare_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1844,7 +2122,7 @@ func (x *CSWelfareRelief) String() string { func (*CSWelfareRelief) ProtoMessage() {} func (x *CSWelfareRelief) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[26] + mi := &file_welfare_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1857,7 +2135,7 @@ func (x *CSWelfareRelief) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareRelief.ProtoReflect.Descriptor instead. func (*CSWelfareRelief) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{26} + return file_welfare_proto_rawDescGZIP(), []int{30} } // PACKET_SCWelfRelief @@ -1874,7 +2152,7 @@ type SCWelfareRelief struct { func (x *SCWelfareRelief) Reset() { *x = SCWelfareRelief{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[27] + mi := &file_welfare_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1887,7 +2165,7 @@ func (x *SCWelfareRelief) String() string { func (*SCWelfareRelief) ProtoMessage() {} func (x *SCWelfareRelief) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[27] + mi := &file_welfare_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1900,7 +2178,7 @@ func (x *SCWelfareRelief) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareRelief.ProtoReflect.Descriptor instead. func (*SCWelfareRelief) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{27} + return file_welfare_proto_rawDescGZIP(), []int{31} } func (x *SCWelfareRelief) GetLimitNum() int32 { @@ -1935,7 +2213,7 @@ type CSInviteInfo struct { func (x *CSInviteInfo) Reset() { *x = CSInviteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[28] + mi := &file_welfare_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1948,7 +2226,7 @@ func (x *CSInviteInfo) String() string { func (*CSInviteInfo) ProtoMessage() {} func (x *CSInviteInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[28] + mi := &file_welfare_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1961,7 +2239,70 @@ func (x *CSInviteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSInviteInfo.ProtoReflect.Descriptor instead. func (*CSInviteInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{28} + return file_welfare_proto_rawDescGZIP(), []int{32} +} + +type RankAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始积分 + End int64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束积分 + Num int64 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` // 奖励 +} + +func (x *RankAward) Reset() { + *x = RankAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankAward) ProtoMessage() {} + +func (x *RankAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RankAward.ProtoReflect.Descriptor instead. +func (*RankAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{33} +} + +func (x *RankAward) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *RankAward) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +func (x *RankAward) GetNum() int64 { + if x != nil { + return x.Num + } + return 0 } // PACKET_SCInviteInfo @@ -1970,17 +2311,24 @@ type SCInviteInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 邀请人数 - Code string `protobuf:"bytes,2,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 - InviteUrl string `protobuf:"bytes,3,opt,name=InviteUrl,proto3" json:"InviteUrl,omitempty"` // 邀请链接 - Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 邀请积分 - OtherCode string `protobuf:"bytes,5,opt,name=OtherCode,proto3" json:"OtherCode,omitempty"` // 已绑定的邀请码 + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 邀请人数 + Code string `protobuf:"bytes,2,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 + InviteUrl string `protobuf:"bytes,3,opt,name=InviteUrl,proto3" json:"InviteUrl,omitempty"` // 邀请链接 + Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 邀请积分 + OtherCode string `protobuf:"bytes,5,opt,name=OtherCode,proto3" json:"OtherCode,omitempty"` // 已绑定的邀请码 + BindScore int64 `protobuf:"varint,6,opt,name=BindScore,proto3" json:"BindScore,omitempty"` // 绑定积分 + RechargeScore int64 `protobuf:"varint,7,opt,name=RechargeScore,proto3" json:"RechargeScore,omitempty"` // 充值积分,一个玩家最多给上级贡献一次 + PayScore map[int64]int64 `protobuf:"bytes,8,rep,name=PayScore,proto3" json:"PayScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 充值积分;充值金额:获得积分 + Rates []int64 `protobuf:"varint,9,rep,packed,name=Rates,proto3" json:"Rates,omitempty"` // 返佣比例;多级按顺序给 + Awards1 []*RankAward `protobuf:"bytes,10,rep,name=Awards1,proto3" json:"Awards1,omitempty"` // 周榜奖励列表 + Awards2 []*RankAward `protobuf:"bytes,11,rep,name=Awards2,proto3" json:"Awards2,omitempty"` // 周榜奖励列表 + Awards3 []*RankAward `protobuf:"bytes,12,rep,name=Awards3,proto3" json:"Awards3,omitempty"` // 周榜奖励列表 } func (x *SCInviteInfo) Reset() { *x = SCInviteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2341,7 @@ func (x *SCInviteInfo) String() string { func (*SCInviteInfo) ProtoMessage() {} func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2354,7 @@ func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCInviteInfo.ProtoReflect.Descriptor instead. func (*SCInviteInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{29} + return file_welfare_proto_rawDescGZIP(), []int{34} } func (x *SCInviteInfo) GetNum() int32 { @@ -2044,6 +2392,55 @@ func (x *SCInviteInfo) GetOtherCode() string { return "" } +func (x *SCInviteInfo) GetBindScore() int64 { + if x != nil { + return x.BindScore + } + return 0 +} + +func (x *SCInviteInfo) GetRechargeScore() int64 { + if x != nil { + return x.RechargeScore + } + return 0 +} + +func (x *SCInviteInfo) GetPayScore() map[int64]int64 { + if x != nil { + return x.PayScore + } + return nil +} + +func (x *SCInviteInfo) GetRates() []int64 { + if x != nil { + return x.Rates + } + return nil +} + +func (x *SCInviteInfo) GetAwards1() []*RankAward { + if x != nil { + return x.Awards1 + } + return nil +} + +func (x *SCInviteInfo) GetAwards2() []*RankAward { + if x != nil { + return x.Awards2 + } + return nil +} + +func (x *SCInviteInfo) GetAwards3() []*RankAward { + if x != nil { + return x.Awards3 + } + return nil +} + // 绑定邀请人 // PACKET_CSBindInvite type CSBindInvite struct { @@ -2057,7 +2454,7 @@ type CSBindInvite struct { func (x *CSBindInvite) Reset() { *x = CSBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2070,7 +2467,7 @@ func (x *CSBindInvite) String() string { func (*CSBindInvite) ProtoMessage() {} func (x *CSBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2083,7 +2480,7 @@ func (x *CSBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use CSBindInvite.ProtoReflect.Descriptor instead. func (*CSBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{30} + return file_welfare_proto_rawDescGZIP(), []int{35} } func (x *CSBindInvite) GetCode() string { @@ -2105,7 +2502,7 @@ type SCBindInvite struct { func (x *SCBindInvite) Reset() { *x = SCBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2118,7 +2515,7 @@ func (x *SCBindInvite) String() string { func (*SCBindInvite) ProtoMessage() {} func (x *SCBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2131,7 +2528,7 @@ func (x *SCBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use SCBindInvite.ProtoReflect.Descriptor instead. func (*SCBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{31} + return file_welfare_proto_rawDescGZIP(), []int{36} } func (x *SCBindInvite) GetOpRetCode() OpResultCode { @@ -2152,7 +2549,7 @@ type CSPigbankGetInfo struct { func (x *CSPigbankGetInfo) Reset() { *x = CSPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2165,7 +2562,7 @@ func (x *CSPigbankGetInfo) String() string { func (*CSPigbankGetInfo) ProtoMessage() {} func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2178,7 +2575,7 @@ func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankGetInfo.ProtoReflect.Descriptor instead. func (*CSPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{32} + return file_welfare_proto_rawDescGZIP(), []int{37} } // 存钱罐信息 @@ -2194,12 +2591,13 @@ type SCPigbankGetInfo struct { CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石 BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值 DayBuyMaxCnt int32 `protobuf:"varint,6,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,7,opt,name=Price,proto3" json:"Price,omitempty"` //消耗钻石原价 } func (x *SCPigbankGetInfo) Reset() { *x = SCPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2212,7 +2610,7 @@ func (x *SCPigbankGetInfo) String() string { func (*SCPigbankGetInfo) ProtoMessage() {} func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2225,7 +2623,7 @@ func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankGetInfo.ProtoReflect.Descriptor instead. func (*SCPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{33} + return file_welfare_proto_rawDescGZIP(), []int{38} } func (x *SCPigbankGetInfo) GetOpRetCode() OpResultCode { @@ -2270,6 +2668,13 @@ func (x *SCPigbankGetInfo) GetDayBuyMaxCnt() int32 { return 0 } +func (x *SCPigbankGetInfo) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + // 存钱罐领取金币 //PACKET_CSPigbankTakeCoin type CSPigbankTakeCoin struct { @@ -2281,7 +2686,7 @@ type CSPigbankTakeCoin struct { func (x *CSPigbankTakeCoin) Reset() { *x = CSPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2294,7 +2699,7 @@ func (x *CSPigbankTakeCoin) String() string { func (*CSPigbankTakeCoin) ProtoMessage() {} func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2307,7 +2712,7 @@ func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*CSPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{34} + return file_welfare_proto_rawDescGZIP(), []int{39} } // 存钱罐领取金币 @@ -2323,12 +2728,13 @@ type SCPigbankTakeCoin struct { CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石 BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值 DayBuyMaxCnt int32 `protobuf:"varint,6,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,7,opt,name=Price,proto3" json:"Price,omitempty"` //消耗钻石原价 } func (x *SCPigbankTakeCoin) Reset() { *x = SCPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2341,7 +2747,7 @@ func (x *SCPigbankTakeCoin) String() string { func (*SCPigbankTakeCoin) ProtoMessage() {} func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2354,7 +2760,7 @@ func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*SCPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{35} + return file_welfare_proto_rawDescGZIP(), []int{40} } func (x *SCPigbankTakeCoin) GetOpRetCode() OpResultCode { @@ -2399,6 +2805,263 @@ func (x *SCPigbankTakeCoin) GetDayBuyMaxCnt() int32 { return 0 } +func (x *SCPigbankTakeCoin) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +// 钻石存钱罐信息 +//PACKET_CSDiamondBankGetInfo +type CSDiamondBankGetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSDiamondBankGetInfo) Reset() { + *x = CSDiamondBankGetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSDiamondBankGetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSDiamondBankGetInfo) ProtoMessage() {} + +func (x *CSDiamondBankGetInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSDiamondBankGetInfo.ProtoReflect.Descriptor instead. +func (*CSDiamondBankGetInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{41} +} + +// 钻石存钱罐信息 +//PACKET_SCDiamondBankGetInfo +type SCDiamondBankGetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` //结果 + BankDiamond float64 `protobuf:"fixed64,2,opt,name=BankDiamond,proto3" json:"BankDiamond,omitempty"` // 当前已存钻石 + TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数 + BankMaxCoin int64 `protobuf:"varint,4,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最大储存值 + DayBuyMaxCnt int32 `protobuf:"varint,5,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,6,opt,name=Price,proto3" json:"Price,omitempty"` //原价 + NowPrice int64 `protobuf:"varint,7,opt,name=NowPrice,proto3" json:"NowPrice,omitempty"` //现价 + ShopId int32 `protobuf:"varint,8,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //商城ID +} + +func (x *SCDiamondBankGetInfo) Reset() { + *x = SCDiamondBankGetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDiamondBankGetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDiamondBankGetInfo) ProtoMessage() {} + +func (x *SCDiamondBankGetInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCDiamondBankGetInfo.ProtoReflect.Descriptor instead. +func (*SCDiamondBankGetInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{42} +} + +func (x *SCDiamondBankGetInfo) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +func (x *SCDiamondBankGetInfo) GetBankDiamond() float64 { + if x != nil { + return x.BankDiamond + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetTakeTimes() int32 { + if x != nil { + return x.TakeTimes + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetBankMaxCoin() int64 { + if x != nil { + return x.BankMaxCoin + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetDayBuyMaxCnt() int32 { + if x != nil { + return x.DayBuyMaxCnt + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetNowPrice() int64 { + if x != nil { + return x.NowPrice + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + +// 钻石存钱罐领取金币 +//PACKET_SCDiamondBankTakeDiamond +type SCDiamondBankTakeDiamond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` // 结果 + TakeDiamondNum float64 `protobuf:"fixed64,2,opt,name=TakeDiamondNum,proto3" json:"TakeDiamondNum,omitempty"` // 领取钻石数量 + TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数 + BankMaxDiamond int64 `protobuf:"varint,4,opt,name=BankMaxDiamond,proto3" json:"BankMaxDiamond,omitempty"` // 存钱罐最大储存值 + DayBuyMaxCnt int32 `protobuf:"varint,5,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,6,opt,name=Price,proto3" json:"Price,omitempty"` //原价 + NowPrice int64 `protobuf:"varint,7,opt,name=NowPrice,proto3" json:"NowPrice,omitempty"` //现价 + ShopId int32 `protobuf:"varint,8,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //商城ID +} + +func (x *SCDiamondBankTakeDiamond) Reset() { + *x = SCDiamondBankTakeDiamond{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDiamondBankTakeDiamond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDiamondBankTakeDiamond) ProtoMessage() {} + +func (x *SCDiamondBankTakeDiamond) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCDiamondBankTakeDiamond.ProtoReflect.Descriptor instead. +func (*SCDiamondBankTakeDiamond) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{43} +} + +func (x *SCDiamondBankTakeDiamond) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +func (x *SCDiamondBankTakeDiamond) GetTakeDiamondNum() float64 { + if x != nil { + return x.TakeDiamondNum + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetTakeTimes() int32 { + if x != nil { + return x.TakeTimes + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetBankMaxDiamond() int64 { + if x != nil { + return x.BankMaxDiamond + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetDayBuyMaxCnt() int32 { + if x != nil { + return x.DayBuyMaxCnt + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetNowPrice() int64 { + if x != nil { + return x.NowPrice + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + var File_welfare_proto protoreflect.FileDescriptor var file_welfare_proto_rawDesc = []byte{ @@ -2419,207 +3082,244 @@ var file_welfare_proto_rawDesc = []byte{ 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x2a, 0x0a, - 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xb5, 0x01, 0x0a, 0x0e, 0x53, 0x43, - 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x09, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x44, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, + 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x4e, 0x75, 0x6d, 0x22, 0x2a, 0x0a, 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, + 0xb5, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x43, + 0x53, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x53, 0x43, + 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, - 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, + 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, + 0x6e, 0x44, 0x61, 0x79, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x50, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, + 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x41, 0x64, 0x64, + 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x4a, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, + 0x61, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, + 0x02, 0x0a, 0x0e, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x33, 0x0a, 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x77, 0x54, + 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x44, 0x72, 0x61, 0x77, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x22, 0x62, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, - 0x79, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, - 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x41, 0x64, - 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, - 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, - 0x44, 0x61, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, - 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, + 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, + 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x75, 0x70, + 0x32, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x2e, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x41, 0x64, + 0x64, 0x75, 0x70, 0x32, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x79, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x54, + 0x0a, 0x14, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x64, 0x64, 0x75, 0x70, + 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x42, 0x6c, 0x69, 0x6e, 0x64, + 0x42, 0x6f, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, + 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x43, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xc6, + 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, + 0x79, 0x12, 0x28, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, + 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x53, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, + 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x22, 0x13, 0x0a, 0x11, + 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, + 0x79, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, - 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x22, 0x10, - 0x0a, 0x0e, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x50, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, - 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x96, 0x02, 0x0a, - 0x0e, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x33, 0x0a, 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x05, 0x54, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x05, - 0x53, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x77, 0x54, 0x75, 0x72, - 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x72, - 0x61, 0x77, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x69, - 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, - 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x64, 0x64, - 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x75, 0x72, - 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, - 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, - 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, - 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, - 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, - 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x42, 0x6f, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x43, + 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, + 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x53, 0x43, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, - 0x61, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x43, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, - 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, - 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, - 0xc6, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, - 0x61, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, - 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, - 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x53, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x4f, - 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, - 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x22, 0x13, 0x0a, - 0x11, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, - 0x61, 0x79, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1c, 0x0a, 0x1a, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, + 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x53, - 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, - 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, - 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, - 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x44, - 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x18, 0x0a, - 0x16, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x22, 0x4d, 0x0a, 0x16, 0x53, 0x43, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, - 0x79, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, - 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x43, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, - 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x33, 0x0a, - 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe9, 0x01, 0x0a, 0x10, 0x53, 0x43, 0x50, 0x69, 0x67, - 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f, - 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, - 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, - 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, - 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xf0, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x50, 0x69, - 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x33, 0x0a, - 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x22, 0x4d, 0x0a, 0x16, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, + 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x43, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, + 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x45, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xe8, 0x03, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x61, 0x79, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x31, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, + 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x2c, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x32, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x2c, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x33, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x33, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, + 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xff, + 0x01, 0x0a, 0x10, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, + 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, + 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, @@ -2627,67 +3327,129 @@ var file_welfare_proto_rawDesc = []byte{ 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, - 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 0x0a, 0x0c, 0x4f, - 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, - 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, - 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, - 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, - 0x6c, 0x6c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, - 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x10, 0x0b, 0x2a, 0xcd, 0x07, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, - 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, - 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, - 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, - 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, - 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, - 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, - 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, - 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, + 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, + 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x86, 0x02, 0x0a, 0x11, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x4f, + 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, + 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4e, + 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, + 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, + 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x16, + 0x0a, 0x14, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x02, 0x0a, 0x14, 0x53, 0x43, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, + 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, + 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, + 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x18, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, + 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, + 0x78, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, + 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, + 0x49, 0x64, 0x2a, 0x86, 0x02, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, + 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, + 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, + 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, + 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, + 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x65, 0x73, + 0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, + 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 0x2a, 0xff, 0x08, 0x0a, 0x09, + 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, + 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44, 0x10, + 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, + 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e, 0x50, + 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, + 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, + 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, + 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12, 0x1f, 0x0a, + 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, + 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14, 0x12, 0x1f, + 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, + 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b, 0x14, 0x12, + 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, + 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9c, 0x14, + 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, + 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9d, + 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, + 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9e, + 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, + 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, - 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, - 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, - 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, - 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, - 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9c, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, - 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9d, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, - 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9e, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, - 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, - 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, - 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, - 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, - 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, - 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa3, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, - 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, - 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, - 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, - 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x18, 0x0a, + 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, + 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, + 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10, 0xa3, + 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, + 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, + 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, + 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, + 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, + 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd5, @@ -2705,10 +3467,16 @@ var file_welfare_proto_rawDesc = []byte{ 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, - 0x10, 0xe1, 0x16, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x10, 0xe1, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, + 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, 0x42, 0x27, 0x5a, + 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2724,77 +3492,95 @@ func file_welfare_proto_rawDescGZIP() []byte { } var file_welfare_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID (*CSGetReliefFund)(nil), // 2: welfare.CSGetReliefFund (*SCGetReliefFund)(nil), // 3: welfare.SCGetReliefFund (*WelfareDate)(nil), // 4: welfare.WelfareDate - (*CSGetTurnplate)(nil), // 5: welfare.CSGetTurnplate - (*SCGetTurnplate)(nil), // 6: welfare.SCGetTurnplate - (*AddUpWelfareDate)(nil), // 7: welfare.AddUpWelfareDate - (*CSGetAddupSign)(nil), // 8: welfare.CSGetAddupSign - (*SCGetAddupSign)(nil), // 9: welfare.SCGetAddupSign - (*CSWelfaredInfo)(nil), // 10: welfare.CSWelfaredInfo - (*WelfareTurnplateDate)(nil), // 11: welfare.WelfareTurnplateDate - (*Welfare7SignDate)(nil), // 12: welfare.Welfare7SignDate - (*SCWelfaredInfo)(nil), // 13: welfare.SCWelfaredInfo - (*BlindBoxData)(nil), // 14: welfare.BlindBoxData - (*CSBlindBoxInfo)(nil), // 15: welfare.CSBlindBoxInfo - (*SCBlindBoxInfo)(nil), // 16: welfare.SCBlindBoxInfo - (*CSGetBlindBox)(nil), // 17: welfare.CSGetBlindBox - (*SCGetBlindBox)(nil), // 18: welfare.SCGetBlindBox - (*WelfareSpree)(nil), // 19: welfare.WelfareSpree - (*CSWelfareFirstPayData)(nil), // 20: welfare.CSWelfareFirstPayData - (*SCWelfareFirstPayData)(nil), // 21: welfare.SCWelfareFirstPayData - (*CSWelfareFirstPay)(nil), // 22: welfare.CSWelfareFirstPay - (*SCWelfareFirstPay)(nil), // 23: welfare.SCWelfareFirstPay - (*CSWelfareContinuousPayData)(nil), // 24: welfare.CSWelfareContinuousPayData - (*SCWelfareContinuousPayData)(nil), // 25: welfare.SCWelfareContinuousPayData - (*CSWelfareContinuousPay)(nil), // 26: welfare.CSWelfareContinuousPay - (*SCWelfareContinuousPay)(nil), // 27: welfare.SCWelfareContinuousPay - (*CSWelfareRelief)(nil), // 28: welfare.CSWelfareRelief - (*SCWelfareRelief)(nil), // 29: welfare.SCWelfareRelief - (*CSInviteInfo)(nil), // 30: welfare.CSInviteInfo - (*SCInviteInfo)(nil), // 31: welfare.SCInviteInfo - (*CSBindInvite)(nil), // 32: welfare.CSBindInvite - (*SCBindInvite)(nil), // 33: welfare.SCBindInvite - (*CSPigbankGetInfo)(nil), // 34: welfare.CSPigbankGetInfo - (*SCPigbankGetInfo)(nil), // 35: welfare.SCPigbankGetInfo - (*CSPigbankTakeCoin)(nil), // 36: welfare.CSPigbankTakeCoin - (*SCPigbankTakeCoin)(nil), // 37: welfare.SCPigbankTakeCoin + (*AddUp2TypeDate)(nil), // 5: welfare.AddUp2TypeDate + (*CSGetTurnplate)(nil), // 6: welfare.CSGetTurnplate + (*SCGetTurnplate)(nil), // 7: welfare.SCGetTurnplate + (*AddUpWelfareDate)(nil), // 8: welfare.AddUpWelfareDate + (*CSGetAddupSign)(nil), // 9: welfare.CSGetAddupSign + (*SCGetAddupSign)(nil), // 10: welfare.SCGetAddupSign + (*CSWelfaredInfo)(nil), // 11: welfare.CSWelfaredInfo + (*WelfareTurnplateDate)(nil), // 12: welfare.WelfareTurnplateDate + (*Welfare7SignDate)(nil), // 13: welfare.Welfare7SignDate + (*Addup2Data)(nil), // 14: welfare.Addup2Data + (*SCWelfaredInfo)(nil), // 15: welfare.SCWelfaredInfo + (*CSSignDayAddup2Award)(nil), // 16: welfare.CSSignDayAddup2Award + (*SCSignDayAddup2Award)(nil), // 17: welfare.SCSignDayAddup2Award + (*BlindBoxData)(nil), // 18: welfare.BlindBoxData + (*CSBlindBoxInfo)(nil), // 19: welfare.CSBlindBoxInfo + (*SCBlindBoxInfo)(nil), // 20: welfare.SCBlindBoxInfo + (*CSGetBlindBox)(nil), // 21: welfare.CSGetBlindBox + (*SCGetBlindBox)(nil), // 22: welfare.SCGetBlindBox + (*WelfareSpree)(nil), // 23: welfare.WelfareSpree + (*CSWelfareFirstPayData)(nil), // 24: welfare.CSWelfareFirstPayData + (*SCWelfareFirstPayData)(nil), // 25: welfare.SCWelfareFirstPayData + (*CSWelfareFirstPay)(nil), // 26: welfare.CSWelfareFirstPay + (*SCWelfareFirstPay)(nil), // 27: welfare.SCWelfareFirstPay + (*CSWelfareContinuousPayData)(nil), // 28: welfare.CSWelfareContinuousPayData + (*SCWelfareContinuousPayData)(nil), // 29: welfare.SCWelfareContinuousPayData + (*CSWelfareContinuousPay)(nil), // 30: welfare.CSWelfareContinuousPay + (*SCWelfareContinuousPay)(nil), // 31: welfare.SCWelfareContinuousPay + (*CSWelfareRelief)(nil), // 32: welfare.CSWelfareRelief + (*SCWelfareRelief)(nil), // 33: welfare.SCWelfareRelief + (*CSInviteInfo)(nil), // 34: welfare.CSInviteInfo + (*RankAward)(nil), // 35: welfare.RankAward + (*SCInviteInfo)(nil), // 36: welfare.SCInviteInfo + (*CSBindInvite)(nil), // 37: welfare.CSBindInvite + (*SCBindInvite)(nil), // 38: welfare.SCBindInvite + (*CSPigbankGetInfo)(nil), // 39: welfare.CSPigbankGetInfo + (*SCPigbankGetInfo)(nil), // 40: welfare.SCPigbankGetInfo + (*CSPigbankTakeCoin)(nil), // 41: welfare.CSPigbankTakeCoin + (*SCPigbankTakeCoin)(nil), // 42: welfare.SCPigbankTakeCoin + (*CSDiamondBankGetInfo)(nil), // 43: welfare.CSDiamondBankGetInfo + (*SCDiamondBankGetInfo)(nil), // 44: welfare.SCDiamondBankGetInfo + (*SCDiamondBankTakeDiamond)(nil), // 45: welfare.SCDiamondBankTakeDiamond + nil, // 46: welfare.SCInviteInfo.PayScoreEntry } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode 0, // 1: welfare.SCGetTurnplate.OpRetCode:type_name -> welfare.OpResultCode 4, // 2: welfare.SCGetTurnplate.Date:type_name -> welfare.WelfareDate 4, // 3: welfare.AddUpWelfareDate.AddUpDate:type_name -> welfare.WelfareDate - 0, // 4: welfare.SCGetAddupSign.OpRetCode:type_name -> welfare.OpResultCode - 7, // 5: welfare.SCGetAddupSign.Date:type_name -> welfare.AddUpWelfareDate - 4, // 6: welfare.WelfareTurnplateDate.Date:type_name -> welfare.WelfareDate - 4, // 7: welfare.Welfare7SignDate.Date:type_name -> welfare.WelfareDate - 7, // 8: welfare.Welfare7SignDate.AddUpDate:type_name -> welfare.AddUpWelfareDate - 11, // 9: welfare.SCWelfaredInfo.Tlist:type_name -> welfare.WelfareTurnplateDate - 12, // 10: welfare.SCWelfaredInfo.Slist:type_name -> welfare.Welfare7SignDate - 0, // 11: welfare.SCBlindBoxInfo.OpRetCode:type_name -> welfare.OpResultCode - 14, // 12: welfare.SCBlindBoxInfo.Date:type_name -> welfare.BlindBoxData - 0, // 13: welfare.SCGetBlindBox.OpRetCode:type_name -> welfare.OpResultCode - 4, // 14: welfare.WelfareSpree.Item:type_name -> welfare.WelfareDate - 0, // 15: welfare.SCWelfareFirstPayData.OpRetCode:type_name -> welfare.OpResultCode - 19, // 16: welfare.SCWelfareFirstPayData.List:type_name -> welfare.WelfareSpree - 0, // 17: welfare.SCWelfareFirstPay.OpRetCode:type_name -> welfare.OpResultCode - 0, // 18: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode - 19, // 19: welfare.SCWelfareContinuousPayData.List:type_name -> welfare.WelfareSpree - 0, // 20: welfare.SCWelfareContinuousPay.OpRetCode:type_name -> welfare.OpResultCode - 0, // 21: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode - 0, // 22: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode - 0, // 23: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode - 24, // [24:24] is the sub-list for method output_type - 24, // [24:24] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 4, // 4: welfare.AddUpWelfareDate.AddUp2Date:type_name -> welfare.WelfareDate + 5, // 5: welfare.AddUpWelfareDate.AddUp2Type:type_name -> welfare.AddUp2TypeDate + 0, // 6: welfare.SCGetAddupSign.OpRetCode:type_name -> welfare.OpResultCode + 8, // 7: welfare.SCGetAddupSign.Date:type_name -> welfare.AddUpWelfareDate + 4, // 8: welfare.WelfareTurnplateDate.Date:type_name -> welfare.WelfareDate + 4, // 9: welfare.Welfare7SignDate.Date:type_name -> welfare.WelfareDate + 8, // 10: welfare.Welfare7SignDate.AddUpDate:type_name -> welfare.AddUpWelfareDate + 12, // 11: welfare.SCWelfaredInfo.Tlist:type_name -> welfare.WelfareTurnplateDate + 13, // 12: welfare.SCWelfaredInfo.Slist:type_name -> welfare.Welfare7SignDate + 14, // 13: welfare.SCWelfaredInfo.Addup2:type_name -> welfare.Addup2Data + 0, // 14: welfare.SCBlindBoxInfo.OpRetCode:type_name -> welfare.OpResultCode + 18, // 15: welfare.SCBlindBoxInfo.Date:type_name -> welfare.BlindBoxData + 0, // 16: welfare.SCGetBlindBox.OpRetCode:type_name -> welfare.OpResultCode + 4, // 17: welfare.WelfareSpree.Item:type_name -> welfare.WelfareDate + 0, // 18: welfare.SCWelfareFirstPayData.OpRetCode:type_name -> welfare.OpResultCode + 23, // 19: welfare.SCWelfareFirstPayData.List:type_name -> welfare.WelfareSpree + 0, // 20: welfare.SCWelfareFirstPay.OpRetCode:type_name -> welfare.OpResultCode + 0, // 21: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode + 23, // 22: welfare.SCWelfareContinuousPayData.List:type_name -> welfare.WelfareSpree + 0, // 23: welfare.SCWelfareContinuousPay.OpRetCode:type_name -> welfare.OpResultCode + 46, // 24: welfare.SCInviteInfo.PayScore:type_name -> welfare.SCInviteInfo.PayScoreEntry + 35, // 25: welfare.SCInviteInfo.Awards1:type_name -> welfare.RankAward + 35, // 26: welfare.SCInviteInfo.Awards2:type_name -> welfare.RankAward + 35, // 27: welfare.SCInviteInfo.Awards3:type_name -> welfare.RankAward + 0, // 28: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode + 0, // 29: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode + 0, // 30: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode + 0, // 31: welfare.SCDiamondBankGetInfo.OpRetCode:type_name -> welfare.OpResultCode + 0, // 32: welfare.SCDiamondBankTakeDiamond.OpRetCode:type_name -> welfare.OpResultCode + 33, // [33:33] is the sub-list for method output_type + 33, // [33:33] is the sub-list for method input_type + 33, // [33:33] is the sub-list for extension type_name + 33, // [33:33] is the sub-list for extension extendee + 0, // [0:33] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -2840,7 +3626,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetTurnplate); i { + switch v := v.(*AddUp2TypeDate); i { case 0: return &v.state case 1: @@ -2852,7 +3638,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetTurnplate); i { + switch v := v.(*CSGetTurnplate); i { case 0: return &v.state case 1: @@ -2864,7 +3650,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUpWelfareDate); i { + switch v := v.(*SCGetTurnplate); i { case 0: return &v.state case 1: @@ -2876,7 +3662,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetAddupSign); i { + switch v := v.(*AddUpWelfareDate); i { case 0: return &v.state case 1: @@ -2888,7 +3674,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetAddupSign); i { + switch v := v.(*CSGetAddupSign); i { case 0: return &v.state case 1: @@ -2900,7 +3686,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfaredInfo); i { + switch v := v.(*SCGetAddupSign); i { case 0: return &v.state case 1: @@ -2912,7 +3698,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareTurnplateDate); i { + switch v := v.(*CSWelfaredInfo); i { case 0: return &v.state case 1: @@ -2924,7 +3710,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDate); i { + switch v := v.(*WelfareTurnplateDate); i { case 0: return &v.state case 1: @@ -2936,7 +3722,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfaredInfo); i { + switch v := v.(*Welfare7SignDate); i { case 0: return &v.state case 1: @@ -2948,7 +3734,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlindBoxData); i { + switch v := v.(*Addup2Data); i { case 0: return &v.state case 1: @@ -2960,7 +3746,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSBlindBoxInfo); i { + switch v := v.(*SCWelfaredInfo); i { case 0: return &v.state case 1: @@ -2972,7 +3758,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCBlindBoxInfo); i { + switch v := v.(*CSSignDayAddup2Award); i { case 0: return &v.state case 1: @@ -2984,7 +3770,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetBlindBox); i { + switch v := v.(*SCSignDayAddup2Award); i { case 0: return &v.state case 1: @@ -2996,7 +3782,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetBlindBox); i { + switch v := v.(*BlindBoxData); i { case 0: return &v.state case 1: @@ -3008,7 +3794,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareSpree); i { + switch v := v.(*CSBlindBoxInfo); i { case 0: return &v.state case 1: @@ -3020,7 +3806,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareFirstPayData); i { + switch v := v.(*SCBlindBoxInfo); i { case 0: return &v.state case 1: @@ -3032,7 +3818,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareFirstPayData); i { + switch v := v.(*CSGetBlindBox); i { case 0: return &v.state case 1: @@ -3044,7 +3830,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareFirstPay); i { + switch v := v.(*SCGetBlindBox); i { case 0: return &v.state case 1: @@ -3056,7 +3842,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareFirstPay); i { + switch v := v.(*WelfareSpree); i { case 0: return &v.state case 1: @@ -3068,7 +3854,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareContinuousPayData); i { + switch v := v.(*CSWelfareFirstPayData); i { case 0: return &v.state case 1: @@ -3080,7 +3866,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareContinuousPayData); i { + switch v := v.(*SCWelfareFirstPayData); i { case 0: return &v.state case 1: @@ -3092,7 +3878,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareContinuousPay); i { + switch v := v.(*CSWelfareFirstPay); i { case 0: return &v.state case 1: @@ -3104,7 +3890,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareContinuousPay); i { + switch v := v.(*SCWelfareFirstPay); i { case 0: return &v.state case 1: @@ -3116,7 +3902,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareRelief); i { + switch v := v.(*CSWelfareContinuousPayData); i { case 0: return &v.state case 1: @@ -3128,7 +3914,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareRelief); i { + switch v := v.(*SCWelfareContinuousPayData); i { case 0: return &v.state case 1: @@ -3140,7 +3926,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSInviteInfo); i { + switch v := v.(*CSWelfareContinuousPay); i { case 0: return &v.state case 1: @@ -3152,7 +3938,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCInviteInfo); i { + switch v := v.(*SCWelfareContinuousPay); i { case 0: return &v.state case 1: @@ -3164,7 +3950,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSBindInvite); i { + switch v := v.(*CSWelfareRelief); i { case 0: return &v.state case 1: @@ -3176,7 +3962,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCBindInvite); i { + switch v := v.(*SCWelfareRelief); i { case 0: return &v.state case 1: @@ -3188,7 +3974,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankGetInfo); i { + switch v := v.(*CSInviteInfo); i { case 0: return &v.state case 1: @@ -3200,7 +3986,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPigbankGetInfo); i { + switch v := v.(*RankAward); i { case 0: return &v.state case 1: @@ -3212,7 +3998,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankTakeCoin); i { + switch v := v.(*SCInviteInfo); i { case 0: return &v.state case 1: @@ -3224,6 +4010,66 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSBindInvite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCBindInvite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPigbankGetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPigbankGetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPigbankTakeCoin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPigbankTakeCoin); i { case 0: return &v.state @@ -3235,6 +4081,42 @@ func file_welfare_proto_init() { return nil } } + file_welfare_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSDiamondBankGetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDiamondBankGetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDiamondBankTakeDiamond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3242,7 +4124,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 36, + NumMessages: 45, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 0ac6416..6388dac 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -40,6 +40,8 @@ enum SPacketID { PACKET_SC_WELF_CONTINPAYINFO = 2597;//连续充值信息 PACKET_CS_WELF_CONTINPAY = 2598;//领取(购买)连续充值 后期走充值回调 PACKET_SC_WELF_CONTINPAY = 2599;//领取连续充值 + PACKET_CS_SignDay_Addup2Award = 2600;//领取七日签到进阶奖励 + PACKET_SC_SignDay_Addup2Award = 2601;//返回七日签到进阶奖励 // 2900~2999 PACKET_CSWelfRelief = 2900;//救济金信息 @@ -54,6 +56,12 @@ enum SPacketID { PACKET_SCPigbankGetInfo = 2911;// 存钱罐信息获取 PACKET_CSPigbankTakeCoin = 2912;// 存钱罐领取金币 PACKET_SCPigbankTakeCoin = 2913;// 存钱罐领取金币 + + PACKET_CSDiamondBankGetInfo = 2914; //钻石存钱罐信息获取 + PACKET_SCDiamondBankGetInfo = 2915; //钻石存钱罐信息返回 + PACKET_SCDiamondBankTakeDiamond = 2916; //钻石存钱罐领取返回 + + } //救济金领取 @@ -76,6 +84,11 @@ message WelfareDate { int32 Item_Id = 4; // 道具id } +message AddUp2TypeDate{ + int32 Day = 1; + int32 Id = 2; // 1,代表观看视频 2,代表钻石类型 + int32 Num = 3; //完成次数 +} //转动转盘 //PACKET_CS_WELF_GETTURNPLATE @@ -95,6 +108,8 @@ message SCGetTurnplate{ message AddUpWelfareDate { int32 AddUpDay = 1; // 累计几天 repeated WelfareDate AddUpDate = 2; // 累计奖励 + repeated WelfareDate AddUp2Date =3; //进阶奖励 + repeated AddUp2TypeDate AddUp2Type = 4; //进阶奖励领取条件 } //累计签到 @@ -124,6 +139,12 @@ message Welfare7SignDate { int32 Day = 1; // 第几天 repeated WelfareDate Date = 2; // 奖励 repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励 + +} +message Addup2Data{ + int32 Day = 1; //天数 + int32 Num = 2; //任务次数 + int64 EndTime = 3;//结束时间戳 -1代表已领取 } //PACKET_SC_WELF_WELFAREINFO @@ -135,6 +156,19 @@ message SCWelfaredInfo{ repeated int32 AddUpSignDay = 5; // 已领取累计奖励天数 repeated int32 TurnplateIdx = 6; // 已领取转盘奖励下标0开始 int32 Switch = 7; // 1.开启 2.关闭 + repeated Addup2Data Addup2 = 8; //七日签到进阶奖励数据 +} + +//领取7日签到累计进阶奖励 +//PACKET_CS_SignDay_Addup2Award +message CSSignDayAddup2Award{ + int32 Day = 1; +} +//PACKET_SC_SignDay_Addup2Award +message SCSignDayAddup2Award{ + int32 Day = 1; //天数 + int32 Num = 2; //任务次数 + int64 EndTime = 3;//结束时间戳 -1代表已领取 } message BlindBoxData { @@ -246,6 +280,13 @@ message SCWelfareRelief{ // 邀请信息 // PACKET_CSInviteInfo message CSInviteInfo{} + +message RankAward{ + int64 Start = 1; // 开始积分 + int64 End = 2; // 结束积分 + int64 Num = 3; // 奖励 +} + // PACKET_SCInviteInfo message SCInviteInfo{ int32 Num = 1; // 邀请人数 @@ -253,6 +294,13 @@ message SCInviteInfo{ string InviteUrl = 3; // 邀请链接 int64 Score = 4; // 邀请积分 string OtherCode = 5; // 已绑定的邀请码 + int64 BindScore = 6; // 绑定积分 + int64 RechargeScore = 7; // 充值积分,一个玩家最多给上级贡献一次 + map PayScore = 8; // 充值积分;充值金额:获得积分 + repeated int64 Rates = 9; // 返佣比例;多级按顺序给 + repeated RankAward Awards1 = 10; // 周榜奖励列表 + repeated RankAward Awards2 = 11; // 周榜奖励列表 + repeated RankAward Awards3 = 12; // 周榜奖励列表 } // 绑定邀请人 @@ -279,6 +327,7 @@ message SCPigbankGetInfo{ int64 CostDiamond = 4; // 耗费钻石 int64 BankMaxCoin = 5; // 存钱罐最储存值 int32 DayBuyMaxCnt = 6; // 今日最大可购买次数 + int64 Price = 7; //消耗钻石原价 } @@ -296,5 +345,35 @@ message SCPigbankTakeCoin{ int64 CostDiamond = 4; // 耗费钻石 int64 BankMaxCoin = 5; // 存钱罐最储存值 int32 DayBuyMaxCnt = 6; // 今日最大可购买次数 + int64 Price = 7; //消耗钻石原价 +} +// 钻石存钱罐信息 +//PACKET_CSDiamondBankGetInfo +message CSDiamondBankGetInfo{ +} + +// 钻石存钱罐信息 +//PACKET_SCDiamondBankGetInfo +message SCDiamondBankGetInfo{ + OpResultCode OpRetCode = 1; //结果 + double BankDiamond = 2; // 当前已存钻石 + int32 TakeTimes = 3; // 领取次数 + int64 BankMaxCoin = 4; // 存钱罐最大储存值 + int32 DayBuyMaxCnt = 5; // 今日最大可购买次数 + int64 Price = 6; //原价 + int64 NowPrice = 7; //现价 + int32 ShopId = 8; //商城ID +} +// 钻石存钱罐领取金币 +//PACKET_SCDiamondBankTakeDiamond +message SCDiamondBankTakeDiamond{ + OpResultCode OpRetCode = 1; // 结果 + double TakeDiamondNum = 2; // 领取钻石数量 + int32 TakeTimes = 3; // 领取次数 + int64 BankMaxDiamond = 4; // 存钱罐最大储存值 + int32 DayBuyMaxCnt = 5; // 今日最大可购买次数 + int64 Price = 6; //原价 + int64 NowPrice = 7; //现价 + int32 ShopId = 8; //商城ID } \ No newline at end of file diff --git a/srvdata/db_petskill.go b/srvdata/db_petskill.go new file mode 100644 index 0000000..1ada54f --- /dev/null +++ b/srvdata/db_petskill.go @@ -0,0 +1,77 @@ + +// Code generated by xlsx2proto. +// DO NOT EDIT! + +package srvdata + +import ( + "google.golang.org/protobuf/proto" + + "mongo.games.com/game/protocol/server" +) + +var PBDB_PetSkillMgr = &DB_PetSkillMgr{ + Datas: &server.DB_PetSkillArray{}, + pool: make(map[int32]*server.DB_PetSkill), + +} + +type DB_PetSkillMgr struct { + Datas *server.DB_PetSkillArray + pool map[int32]*server.DB_PetSkill + +} + +func (this *DB_PetSkillMgr) unmarshal(data []byte) error { + err := proto.Unmarshal(data, this.Datas) + if err == nil { + this.arrangeData() + } + return err +} + +func (this *DB_PetSkillMgr) reunmarshal(data []byte) error { + newDatas := &server.DB_PetSkillArray{} + err := proto.Unmarshal(data, newDatas) + if err == nil { + for _, item := range newDatas.Arr { + existItem := this.GetData(item.GetId()) + if existItem == nil { + this.pool[item.GetId()] = item + this.Datas.Arr = append(this.Datas.Arr, item) + + } else { + *existItem = *item + } + } + } + return err +} + +func (this *DB_PetSkillMgr) arrangeData() { + if this.Datas == nil { + return + } + + dataArr := this.Datas.GetArr() + if dataArr == nil { + return + } + + for _, data := range dataArr { + this.pool[data.GetId()] = data + + } +} + +func (this *DB_PetSkillMgr) GetData(id int32) *server.DB_PetSkill { + if data, ok := this.pool[id]; ok { + return data + } + return nil +} + + +func init() { + DataMgr.register("DB_PetSkill.dat", &ProtobufDataLoader{dh: PBDB_PetSkillMgr}) +} diff --git a/webapi/deprecated.go b/webapi/deprecated.go index 23db785..c809d5d 100644 --- a/webapi/deprecated.go +++ b/webapi/deprecated.go @@ -96,6 +96,11 @@ func APIGetMatchAwardCode(appId string, body proto.Message) ([]byte, error) { return postRequest(appId, "/get_match_award_code", nil, body, "http", DEFAULT_TIMEOUT) } +// ApiSendSMS 发送短信验证码 +func ApiSMSConfig(appId string, body proto.Message) ([]byte, error) { + return postRequest(appId, "/get_SMSConfig", nil, body, "http", DEFAULT_TIMEOUT) +} + // 支付订单 商城 func API_CreateOrder(appId, orderId string, configid, SnId, shopId int32, platform string, packageTag string, os, deviceId, shopname string, amount [3]int32, consumptionamount int32, itemInfo []*webapi.ItemInfo, exchangeOrderId, channel string) *webapi.ASCreateOrder { diff --git a/worldsrv/action_bag.go b/worldsrv/action_bag.go index e55d5d1..70afee4 100644 --- a/worldsrv/action_bag.go +++ b/worldsrv/action_bag.go @@ -284,8 +284,23 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e pack.NowItemNum = item.ItemNum } } + case ItemCanExchange: + logger.Logger.Trace("道具兑换", msg.ItemId) + itemInfo := srvdata.PBDB_GameItemMgr.GetData(msg.ItemId) + if itemInfo == nil || itemInfo.Type != common.ItemTypeChange { + pack.RetCode = bag.OpResultCode_OPRC_NotChange + send() + return nil + } + _, _, isF := BagMgrSingleton.AddItem(p, int64(msg.ItemId), int64(-1), 0, common.GainWayItemChange, "sys", "背包内使用兑换", 0, 0, false) + if isF { + pack.RetCode = bag.OpResultCode_OPRC_Sucess + pack.NowItemId = item.ItemId + pack.NowItemNum = item.ItemNum + //获取兑换码 + BagMgrSingleton.ItemExchangeCard(p, msg.ItemId, int32(itemInfo.Num), msg.CardType) + } } - send() return nil } diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index 59bdb40..6c599af 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -2095,15 +2095,16 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) } proto.SetDefaults(scPlayerData) common.SendToGate(sid, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData, s) + logger.Logger.Tracef("SC_PLAYERDATA %v", scPlayerData) } + sid := PlayerMgrSington.EndPlayerLoading(cspl.GetAccId()) + if pd == nil { send(player_proto.OpResultCode_OPRC_Login_CreateFailed) return } - sid := PlayerMgrSington.EndPlayerLoading(cspl.GetAccId()) - var promoterID string var promoterCfg *PromoterConfig f := func() { @@ -2848,6 +2849,45 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error { return nil } +// 获取运营商配置 +func CSSMSConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { + logger.Logger.Tracef("CSSMSConfig Process %v", data) + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + return nil + } + var res []byte + var err error + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + param := &webapi_proto.ASSMSConfig{ + SnId: p.SnId, + Platform: p.Platform, + } + res, err = webapi.ApiSMSConfig(common.GetAppId(), param) + return nil + }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { + if err != nil || res == nil { + logger.Logger.Errorf("API_SmsConfig err %v", err) + return + } + var info webapi_proto.SASMSConfig + proto.Unmarshal(res, &info) + if info.Tag == webapi_proto.TagCode_SUCCESS { + ret := &player_proto.SCSMSConfig{} + for _, smsInfo := range info.Info { + infoData := &player_proto.SMSInfo{} + infoData.Id = smsInfo.Id + infoData.SmsName = smsInfo.SmsName + ret.Info = append(ret.Info, infoData) + } + p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCSMSConfig), ret) + } else { + logger.Logger.Errorf("API_SmsConfig err %v", info.Msg) + } + }), "API_SmsConfig").Start() + return nil +} + func init() { // 用户信息 common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData) @@ -2873,4 +2913,6 @@ func init() { common.Register(int(player_proto.PlayerPacketID_PACKET_CSADV), player_proto.CSADV{}, CSADV) // 渠道开关 common.Register(int(player_proto.PlayerPacketID_PACKET_CSExchangeChannel), player_proto.CSExchangeChannel{}, CSExchangeChannel) + //获取运营商配置 + common.Register(int(player_proto.PlayerPacketID_PACKET_CSSMSConfig), player_proto.CSSMSConfig{}, CSSMSConfig) } diff --git a/worldsrv/action_server.go b/worldsrv/action_server.go index 354e1f9..56bdfb8 100644 --- a/worldsrv/action_server.go +++ b/worldsrv/action_server.go @@ -492,6 +492,14 @@ func init() { Num: playerBet.GetGain(), }) } + if playerBet.GetGain() < 0 && playerBet.WinState != 1 { + TaskSubjectSingleton.Touch(common.TaskTypeLoseCoin, &TaskData{ + SnId: player.SnId, + GameID: scene.gameId, + GameFreeID: scene.dbGameFree.GetId(), + Num: playerBet.GetGain(), + }) + } } //tienlen 游戏场次 if scene.dbGameFree.GameDif == common.GameDifTienlen { diff --git a/worldsrv/action_shop.go b/worldsrv/action_shop.go index 3e732bf..90ce8a8 100644 --- a/worldsrv/action_shop.go +++ b/worldsrv/action_shop.go @@ -1,6 +1,7 @@ package main import ( + "mongo.games.com/game/srvdata" "time" "mongo.games.com/goserver/core/basic" @@ -384,6 +385,24 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte if shopInfo.Page == ShopPageGift { if !p.CheckWeekCard(shopInfo.Id) { SendClient(shop.OpResultCode_OPRC_Error) + return nil + } + } + if shopInfo.Page == ShopPageDiamondBank { + // 检查每日领取次数 + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") + if p.WelfData.DiamondBank.DayBuyTimes >= DayBuyMaxCnt { + SendClient(shop.OpResultCode_OPRC_Error) + return nil } } if shopInfo.Page == ShopPageVip { diff --git a/worldsrv/action_task.go b/worldsrv/action_task.go index 15dcb7e..761c519 100644 --- a/worldsrv/action_task.go +++ b/worldsrv/action_task.go @@ -7,6 +7,7 @@ import ( "mongo.games.com/goserver/core/netlib" "mongo.games.com/game/common" + "mongo.games.com/game/model" taskproto "mongo.games.com/game/protocol/task" "mongo.games.com/game/srvdata" ) @@ -80,19 +81,37 @@ func SendReward(p *Player, m map[int64]int64, tp int32) { }) } gain := int32(0) + giveType := int32(-1) switch tp { case 1: gain = common.GainWayItemTaskEveryDay + giveType = model.SystemFreeGive_GiveType_TaskEveryDay case 2: gain = common.GainWayItemWeekActive + giveType = model.SystemFreeGive_GiveType_TaskWeekActive case 3: gain = common.GainWayItemTaskNewPlayer + giveType = model.SystemFreeGive_GiveType_TaskNewPlayer case 4: gain = common.GainWayItemTaskInvite + giveType = model.SystemFreeGive_GiveType_TaskInvite case 5: gain = common.GainWayItemTaskAchievement + giveType = model.SystemFreeGive_GiveType_TaskAchievement } BagMgrSingleton.AddItems(p, items, 0, gain, "system", "任务奖励", 0, 0, false) + for _, v := range items { + tp := int32(-1) + if v.ItemId == common.ItemIDCoin { + tp = model.SystemFreeGive_CoinType_Coin + } else if v.ItemId == common.ItemIDDiamond { + tp = model.SystemFreeGive_CoinType_Diamond + } + if !p.IsRob && tp >= 0 && giveType >= 0 { + LogChannelSingleton.WriteMQData( + model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp, v.ItemNum)) + } + } } func CSTaskList(s *netlib.Session, packetId int, data interface{}, sid int64) error { diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index b01042a..b4516f7 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -1,8 +1,9 @@ package main import ( - "encoding/base64" + "errors" "fmt" + "time" "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/logger" @@ -95,6 +96,7 @@ func (this *CSGetAddupSignHandler) Process(s *netlib.Session, packetid int, data } WelfareMgrSington.GetAddupSign(p, msg.GetAddUpDay()) + WelfareMgrSington.UpdateAddUp2Date(p, 0, msg.GetAddUpDay(), time.Now().Unix()+3600) } return nil } @@ -307,7 +309,7 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) } link := model.GameParamData.InviteUrl f := func() string { - return fmt.Sprintf("%s?user=%s", link, base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s|%d", p.Platform, p.SnId)))) + return fmt.Sprintf("%s?user=%s", link, p.ICode) } var res []byte @@ -330,12 +332,42 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) } ret := &welfare.SCInviteInfo{ - Num: p.InviteNum, - Code: p.InviteCode, + Num: int32(p.INum), + Code: p.ICode, InviteUrl: f(), - Score: p.InviteScore, - OtherCode: p.OtherCode, + Score: p.IScore, + OtherCode: p.PCode, } + + cfg := PlatformMgrSingleton.GetConfig(p.Platform).ActInviteConfig + if cfg != nil { + ret.BindScore = cfg.GetBindScore() + ret.RechargeScore = cfg.GetRechargeScore() + ret.PayScore = cfg.GetPayScore() + for _, v := range cfg.GetAwards1() { + ret.Awards1 = append(ret.Awards1, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + for _, v := range cfg.GetAwards2() { + ret.Awards2 = append(ret.Awards2, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + for _, v := range cfg.GetAwards3() { + ret.Awards3 = append(ret.Awards3, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + ret.Rates = cfg.GetRates() + } + p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret) logger.Logger.Tracef("SCInviteInfo %v", ret) })).Start() @@ -358,25 +390,20 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) var inviteSnId int32 var err error + now := time.Now() + cfg := PlatformMgrSingleton.GetConfig(p.Platform).ActInviteConfig send := func() { p.SendToClient(int(welfare.SPacketID_PACKET_SCBindInvite), ret) logger.Logger.Tracef("SCBindInvite %v", ret) if ret.OpRetCode == welfare.OpResultCode_OPRC_Sucess { - // 更新绑定关系 - LogChannelSingleton.WriteLog(&model.BindInvite{ - Platform: p.Platform, - SnId: p.SnId, - InviteSnId: inviteSnId, - }) - + // 玩家自己的绑定任务 TaskSubjectSingleton.Touch(common.TaskTypeBindInviter, &TaskData{SnId: p.SnId, Num: 1}) - p.InviteTask(common.InviteScoreTypeLogin, 0, 1) } } - if p.InviteSnId != 0 { + if p.PSnId != 0 { ret.OpRetCode = welfare.OpResultCode_OPRC_AlreadyBind send() return nil @@ -393,46 +420,52 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) return } - if inviteSnId == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_BindSelf - send() - return - } - - pp := PlayerMgrSington.GetPlayerBySnId(inviteSnId) - if pp != nil { - if pp.InviteSnId == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_MyInvite - send() - return - } - p.InviteSnId = pp.SnId - p.OtherCode = pp.InviteCode - ret.OpRetCode = welfare.OpResultCode_OPRC_Sucess - send() - return - } - - inviteSnId2 := int32(0) + // 3级父级不能是自己 var err error + tmpSnId := inviteSnId task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - inviteSnId2, err = model.GetPlayerInviteSnid(p.Platform, inviteSnId) + // todo 优化查找顶级代理 + for i := 0; i < 10000; i++ { + if tmpSnId == p.SnId { + ret.OpRetCode = welfare.OpResultCode_OPRC_BindSelf + err = errors.New("bind error") + return nil + } + tmpSnId, err = model.GetPlayerInviteSnid(p.Platform, tmpSnId) + if err != nil { + ret.OpRetCode = welfare.OpResultCode_OPRC_Error + return nil + } + if tmpSnId == 0 { + break + } + } + + if err == nil { + err = model.BindInviteSnId(p.Platform, p.SnId, inviteSnId, msg.Code) + } + if err == nil { + SaveInviteScore(&model.InviteScore{ + Platform: p.Platform, + SnId: p.SnId, + InviteSnId: inviteSnId, + Tp: common.InviteScoreTypeBind, + Score: cfg.GetBindScore(), + Ts: now.Unix(), + Money: 0, + }) + } return nil }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { if err != nil { send() return } - if inviteSnId2 == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_MyInvite - send() - return - } - p.InviteSnId = inviteSnId - p.OtherCode = msg.GetCode() + p.PSnId = inviteSnId + p.PCode = msg.GetCode() ret.OpRetCode = welfare.OpResultCode_OPRC_Sucess send() - })).Start() + })).StartByFixExecutor("invite_score") })).Start() return nil } @@ -487,6 +520,80 @@ func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, d return nil } +// GetAddUp2Award +type CSSignDayAddup2AwardPacketFactory struct { +} + +type CSSignDayAddup2AwardHandler struct { +} + +func (this *CSSignDayAddup2AwardPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSSignDayAddup2Award{} + return pack +} + +func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data) + if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.GetAddUp2Award(p, msg.Day) + } + return nil +} + +type CSDiamondBankGetInfoPacketFactory struct { +} + +type CSDiamondBankGetInfoHandler struct { +} + +func (this *CSDiamondBankGetInfoPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSDiamondBankGetInfo{} + return pack +} + +func (this *CSDiamondBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) + if _, ok := data.(*welfare.CSDiamondBankGetInfo); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.DiamondBankGetInfo(p) + } + return nil +} + +/*// 钻石储存罐 +type CSDiamondBankTakeDiamondPacketFactory struct { +} + +type CSDiamondBankTakeDiamondHandler struct { +} + +func (this *CSDiamondBankTakeDiamondPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSDiamondBankTakeDiamond{} + return pack +} + +func (this *CSDiamondBankTakeDiamondHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) + if _, ok := data.(*welfare.CSDiamondBankTakeDiamond); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.DiamondBankTakeCoin(p) + } + return nil +}*/ + func init() { // 领取救济金 common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{}) @@ -531,4 +638,14 @@ func init() { //领取存钱罐金币 common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinHandler{}) netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinPacketFactory{}) + //领取七日签到进阶奖励 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardPacketFactory{}) + //钻石储存罐信息 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CSDiamondBankGetInfo), &CSDiamondBankGetInfoHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSDiamondBankGetInfo), &CSDiamondBankGetInfoPacketFactory{}) + + //领取钻石储存罐 + /* common.RegisterHandler(int(welfare.SPacketID_PACKET_CSDiamondBankTakeDiamond), &CSDiamondBankTakeDiamondHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSDiamondBankTakeDiamond), &CSDiamondBankTakeDiamondPacketFactory{})*/ } diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 394277a..8f746f8 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -2,7 +2,10 @@ package main import ( "errors" + "fmt" "math" + webapiproto "mongo.games.com/game/protocol/webapi" + "mongo.games.com/game/webapi" "mongo.games.com/game/worldsrv/internal" "strconv" "time" @@ -27,9 +30,10 @@ const ( // 道具功能 Function const ( - ItemCanUse = iota //可以使用 - ItemCanGive //可以赠送 - ItemCanSell //可以出售 + ItemCanUse = iota //可以使用 + ItemCanGive //可以赠送 + ItemCanSell //可以出售 + ItemCanExchange //可以兑换 ItemMax ) @@ -512,6 +516,77 @@ func (this *BagMgr) SyncBagData(snid int32, changeItemIds ...int32) { p.SyncBagData(itemInfos) } +// 兑换话费卡 +func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType int32) bool { + // 兑换码奖品 + var err error + var newMsg *model.Message + res := &webapiproto.SAGetMatchAwardCode{} + pack := &bag.SCItemExChangeRes{RetCode: bag.OpResultCode_OPRC_Sucess} + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + // 获取兑换码 + pack := &webapiproto.ASGetMatchAwardCode{ + Platform: p.Platform, + Snid: p.SnId, + ItemID: itemId, + Money: int64(money), + Tel: p.Tel, + CardType: cardType, + Remark: "背包内使用兑换", + } + logger.Logger.Trace("ItemChangeCode ", pack) + var buff []byte + buff, err = webapi.APIGetMatchAwardCode(common.GetAppId(), pack) + if err != nil { + return err + } + if err = proto.Unmarshal(buff, res); err != nil { + return err + } + + if res.GetCode() == "" || res.GetTag() != webapiproto.TagCode_SUCCESS { + return nil + } + + var params []string + for range []string{"zh", "vi", "en", "kh"} { + params = append(params, res.GetMoney(), res.GetCode()) // 金额,兑换码 + } + // 发送邮件 + title := i18n.Tr("languages", "MatchAwardTitle") + content := i18n.Tr("languages", "MatchAward", params) + newMsg = model.NewMessage("", 0, "", p.SnId, model.MSGTYPE_ITEM_CHANGE, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", nil, p.Platform, model.HallTienlen, nil) + err := model.InsertMessage(p.Platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v itemID:%v err:%v", p.SnId, itemId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil || res.GetCode() == "" || res.GetTag() != webapiproto.TagCode_SUCCESS { + //返回道具 + items := make([]*Item, 0) + items = append(items, &Item{ + ItemId: itemId, // 物品id + ItemNum: 1, // 数量 + ObtainTime: time.Now().Unix(), + }) + this.AddItems(p, items, 0, common.GainWayItemChange, "system", "背包内使用兑换失败", 0, 0, false) + logger.Logger.Errorf("获取兑换码失败 snid:%v itemID:%v res:%v err:%v", p.SnId, itemId, res, err) + pack.RetCode = bag.OpResultCode_OPRC_Error + p.SendToClient(int(bag.SPacketID_PACKET_SC_ITEM_EXCHANGE_RES), pack) + return + } + p := PlayerMgrSington.GetPlayerBySnId(p.SnId) + if p != nil { + p.AddMessage(newMsg) + } + p.SendToClient(int(bag.SPacketID_PACKET_SC_ITEM_EXCHANGE_RES), pack) + }), fmt.Sprintf("ItemExChange%d", p.SnId)).Start() + return true +} + func (this *BagMgr) Update() { } @@ -522,11 +597,11 @@ func (this *BagMgr) Shutdown() { //========================implement IPlayerLoad ============================== func (this *BagMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay { - data := model.GetBagInfo(snid, platform) + data, err := model.GetBagInfo(snid, platform) return &internal.PlayerLoadReplay{ Platform: platform, Snid: snid, - Err: nil, + Err: err, Data: data, } } diff --git a/worldsrv/clock.go b/worldsrv/clock.go index 7bd48d7..63b3ea6 100644 --- a/worldsrv/clock.go +++ b/worldsrv/clock.go @@ -3,6 +3,7 @@ package main import ( "time" + "mongo.games.com/game/common" "mongo.games.com/goserver/core/module" ) @@ -114,9 +115,9 @@ func (this *ClockMgr) Update() { this.LastDay = day this.fireDayEvent() - _, week := tNow.ISOWeek() - if week != this.LastWeek { - this.LastWeek = week + week := common.GetWeekStartTs(tNow.Unix()) + if week != int64(this.LastWeek) { + this.LastWeek = int(week) this.fireWeekEvent() } diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 53a4037..51faf23 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -66,6 +66,8 @@ func init() { etcd.Register(etcd.ETCDKEY_CHESSRANK_CFG, webapi.ChessRankcfgData{}, platformConfigEvent) // 手机积分 etcd.Register(etcd.ETCDKEY_ACT_PHONELOTTERY, webapi.WelfarePhoneLotteryStatus{}, platformConfigEvent) + // 邀请活动 + etcd.Register(etcd.ETCDKEY_ACT_Invite, webapi.ActInviteConfig{}, platformConfigEvent) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { @@ -195,7 +197,8 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e ChessRankMgrSington.UpdateChessRankConfig(config) case *webapi.WelfarePhoneLotteryStatus: WelfareMgrSington.UpdatePhoneLotteryStatus(config) - + case *webapi.ActInviteConfig: + PlatformMgrSingleton.GetConfig(config.Platform).ActInviteConfig = config default: logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) } diff --git a/worldsrv/invitecode.go b/worldsrv/invitecode.go index 74eb10f..971460c 100644 --- a/worldsrv/invitecode.go +++ b/worldsrv/invitecode.go @@ -1,124 +1,34 @@ package main import ( - "fmt" - - "mongo.games.com/goserver/core/basic" - "mongo.games.com/goserver/core/logger" - "mongo.games.com/goserver/core/task" + "time" "mongo.games.com/game/common" "mongo.games.com/game/model" - "mongo.games.com/game/worldsrv/internal" ) +// SaveInviteScore 保存玩家操作 +// 绑定,充值成功,充值;及产生的积分,充值金额 func SaveInviteScore(data *model.InviteScore) { if data == nil { return } - var err error - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - err = model.SaveInviteScore(data) - if err != nil { - logger.Logger.Errorf("SaveInviteScore error:%v", err) - return err - } - // 后台统计积分记录 - data.Ts /= 1000000000 // 后台需要秒 - LogChannelSingleton.WriteLog(data) - logger.Logger.Tracef("==> php InviteScore %+v", *data) - return nil - }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId) - if err == nil && p != nil { - if data.Score != 0 { - if data.Score < 0 { - if -data.Score > p.InviteScore { - data.Score = -p.InviteScore - } - } - p.InviteScore += data.Score - p.dirty = true - - // 更新邀请任务进度 - if data.Score > 0 { - TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ - SnId: p.SnId, - Num: data.Score, - }) - } - } - - if data.Money > 0 { - TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ - SnId: p.SnId, - Num: data.Money, - }) - } - } - })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", data.InviteSnId)) + cfg := PlatformMgrSingleton.GetConfig(data.Platform).ActInviteConfig + data.Rate = cfg.GetRates() + LogChannelSingleton.WriteLog(&model.EvtInviteMsg{ + InviteScore: *data, + RechargeScore: cfg.GetRechargeScore(), + }) } -func GetInviteScore(platform string, snid int32) { - var n, z, money int64 - var err error - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - n, z, money, err = model.GetInviteScore(platform, snid) - if err != nil { - logger.Logger.Errorf("GetInviteScore error:%v", err) - return err - } - return nil - }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - p := PlayerMgrSington.GetPlayerBySnId(snid) - if err == nil && p != nil { - p.InviteScore = n - p.dirty = true - - // 更新邀请任务进度 - p.ResetTaskN(common.TaskTypeInviteScore) - TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ - SnId: p.SnId, - Num: z, - }) - - p.ResetTaskN(common.TaskTypeInviteRecharge) - TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ - SnId: p.SnId, - Num: money, - }) - } - })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid)) -} - -type InviteCode struct { - internal.BasePlayerLoader -} - -func (i *InviteCode) LoadAfter(platform string, snid int32) *internal.PlayerLoadReplay { - n, err := model.GetInviteNum(platform, snid) - return &internal.PlayerLoadReplay{ - Platform: platform, - Snid: snid, - Err: err, - Data: n, - } -} - -func (i *InviteCode) CallbackAfter(ret *internal.PlayerLoadReplay) { - if ret == nil { - return - } - p := PlayerMgrSington.GetPlayerBySnId(ret.Snid) - if p == nil { - return - } - p.InviteNum = ret.Data.(int32) - p.ResetTaskN(common.TaskTypeInviteNum) - TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: p.SnId, Num: int64(p.InviteNum)}) - GetInviteScore(ret.Platform, ret.Snid) -} - -func init() { - internal.RegisterPlayerLoad(new(InviteCode)) +// CheckNewWeek 每周重置积分 +func CheckNewWeek(platform string, snid int32) { + LogChannelSingleton.WriteLog(&model.EvtInviteMsg{ + InviteScore: model.InviteScore{ + Platform: platform, + SnId: snid, + Tp: common.InviteScoreCheckWeek, + Ts: time.Now().Unix(), + }, + }) } diff --git a/worldsrv/logchannel.go b/worldsrv/logchannel.go index d1853b2..ceecdef 100644 --- a/worldsrv/logchannel.go +++ b/worldsrv/logchannel.go @@ -58,7 +58,6 @@ func init() { LogChannelSingleton.RegisterLogCName(model.MQRankPlayerCoin, &model.RankPlayerCoin{}) LogChannelSingleton.RegisterLogCName(mq.BackBankrupt, &model.BankruptLog{}) LogChannelSingleton.RegisterLogCName(mq.BackReliefund, &model.ReliefFundLog{}) - LogChannelSingleton.RegisterLogCName(model.EvtBindInvite, &model.BindInvite{}) - LogChannelSingleton.RegisterLogCName(mq.BackInviteScore, &model.InviteScore{}) + LogChannelSingleton.RegisterLogCName(model.EvtInvite, &model.EvtInviteMsg{}) LogChannelSingleton.RegisterLogCName(model.MQRankPlayerLevel, &model.PlayerLevelInfo{}) } diff --git a/worldsrv/mq_coinlog.go b/worldsrv/mq_coinlog.go index e78259f..01b9ec0 100644 --- a/worldsrv/mq_coinlog.go +++ b/worldsrv/mq_coinlog.go @@ -7,6 +7,7 @@ import ( "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/broker" "mongo.games.com/goserver/core/broker/rabbitmq" + "mongo.games.com/goserver/core/logger" "mongo.games.com/game/common" "mongo.games.com/game/model" @@ -41,31 +42,49 @@ func init() { return nil }, broker.Queue(model.TopicProbeCoinLogAck), rabbitmq.DurableQueue()) - // 绑定数量同步 - mq.RegisterSubscriber(model.AckBindNum, func(e broker.Event) error { + // 邀请数据同步 + mq.RegisterSubscriber(model.EvtInviteAck, func(e broker.Event) error { msg := e.Message() if msg != nil { defer func() { e.Ack() }() - var log model.BindNum + var log model.EvtInviteAckMsg err := json.Unmarshal(msg.Body, &log) if err != nil { return err } + logger.Logger.Tracef("EvtInviteAckMsg: %+v", log) + //通知主线程执行后续操作 core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error { - player := PlayerMgrSington.GetPlayerBySnId(log.SnId) + player := PlayerMgrSington.GetPlayerBySnId(log.Snid) if player != nil { - player.InviteNum = log.Num + // 邀请数量 + player.INum = log.Num player.ResetTaskN(common.TaskTypeInviteNum) - TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: player.SnId, Num: int64(player.InviteNum)}) + TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: player.SnId, Num: player.INum}) + + // 邀请积分 + player.IScore = log.Score + player.ResetTaskN(common.TaskTypeInviteScore) + TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ + SnId: player.SnId, + Num: log.Score, + }) + // 充值金额 + player.IMoney = log.Money + player.ResetTaskN(common.TaskTypeInviteRecharge) + TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ + SnId: player.SnId, + Num: log.Money, + }) } return nil }), true) } return nil - }, broker.Queue(model.AckBindNum), rabbitmq.DurableQueue()) + }, broker.Queue(model.EvtInviteAck), rabbitmq.DurableQueue()) } diff --git a/worldsrv/player.go b/worldsrv/player.go index 315069d..515f5f5 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -146,7 +146,6 @@ type Player struct { // 最后玩的游戏id LastGameId int GameID []int32 // 最近三天玩的游戏 - InviteNum int32 // 邀请人数 ApplyList []int32 //玩家申请好友记录 } @@ -2222,8 +2221,6 @@ func (this *Player) OnDayTimer(login, continuous bool, t int) { for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypeEveryDay) { this.WelfData.Task[v.GetId()] = &model.TaskData{} } - this.WelfData.Task[common.TaskIDInvitePlayGame] = &model.TaskData{} - this.WelfData.Task[common.TaskIDInviteFirstLogin] = &model.TaskData{} } } //周卡数据更新 @@ -2272,6 +2269,7 @@ func (this *Player) OnMonthTimer() { } func (this *Player) OnWeekTimer() { + logger.Logger.Tracef("OnWeekTimer %v", time.Now()) //判断是否一天即可过滤0点多次切换 if common.InSameDayNoZero(time.Now().Local(), this.lastOnWeekChange) { return @@ -2312,6 +2310,8 @@ func (this *Player) OnWeekTimer() { } } // 重置周任务 + // 重置邀请积分 + CheckNewWeek(this.Platform, this.SnId) } func (this *Player) GetName() string { @@ -2452,10 +2452,10 @@ func (this *Player) SendDiffData() { pack.UpdateField += UpdateField_PhoneScore } // 邀请积分 - if this.diffData.InviteScore != this.InviteScore { + if this.diffData.InviteScore != this.IScore { dirty = true - pack.InviteScore = this.InviteScore - this.diffData.InviteScore = this.InviteScore + pack.InviteScore = this.IScore + this.diffData.InviteScore = this.IScore pack.UpdateField += UpdateField_InviteScore } //总充值金额 @@ -3849,66 +3849,77 @@ func (this *Player) GetPayGoodsInfo() { if data != nil { infos := data.([]*model.DbShop) for _, info := range infos { - var itemInfo []*player_proto.PayItem - var items []*Item - if len(info.Amount) > 0 { - this.AddCoin(int64(info.Amount[0]), 0, info.GainWay, "Callback_login", info.Remark) - this.AddDiamond(int64(info.Amount[1]), 0, info.GainWay, "Callback_login", info.Remark) - } - this.AddMoneyPayTotal(int64(info.ConsumeNum)) - if info.ItemInfo != nil { - for _, v := range info.ItemInfo { - items = append(items, &Item{ItemId: v.ItemId, ItemNum: v.ItemNum}) - itemInfo = append(itemInfo, &player_proto.PayItem{ - ItemId: v.ItemId, - ItemNum: v.ItemNum, - }) + switch info.PageId { + case ShopPageBackend: + logger.Logger.Tracef("GetPayGoodsInfo ShopPageBackend %+v", *info) + default: + var itemInfo []*player_proto.PayItem + var items []*Item + if len(info.Amount) > 0 { + this.AddCoin(int64(info.Amount[0]), 0, info.GainWay, "Callback_login", info.Remark) + this.AddDiamond(int64(info.Amount[1]), 0, info.GainWay, "Callback_login", info.Remark) } - } - switch info.Remark { - case "BlindBox": - if len(info.OtherParams) > 0 { - this.WelfData.BlindBoxId = info.OtherParams[0] - } else { - logger.Logger.Errorf("GetPayGoodsInfo BlindBox OtherParams is nil") + this.AddMoneyPayTotal(int64(info.ConsumeNum)) + if info.ItemInfo != nil { + for _, v := range info.ItemInfo { + items = append(items, &Item{ItemId: v.ItemId, ItemNum: v.ItemNum}) + itemInfo = append(itemInfo, &player_proto.PayItem{ + ItemId: v.ItemId, + ItemNum: v.ItemNum, + }) + } } - case "FirstRecharge": - if len(info.OtherParams) > 0 { - - this.WelfData.FirstPayDay = info.OtherParams[0] - this.WelfData.FirstPayTickets = info.Ts - } else { - logger.Logger.Errorf("GetPayGoodsInfo FirstRecharge OtherParams is nil") + //钻石存储罐 + if info.PageId == ShopPageDiamondBank { + WelfareMgrSington.DiamondBankTakeCoin(this) } - case "ContinuousPay": - if len(info.OtherParams) > 0 { + switch info.Remark { + case "BlindBox": + if len(info.OtherParams) > 0 { + this.WelfData.BlindBoxId = info.OtherParams[0] + } else { + logger.Logger.Errorf("GetPayGoodsInfo BlindBox OtherParams is nil") + } + case "FirstRecharge": + if len(info.OtherParams) > 0 { - this.WelfData.ContinuousPayDay = info.OtherParams[0] - this.WelfData.ContinuousPayTickets = info.Ts - } else { - logger.Logger.Errorf("GetPayGoodsInfo ContinuousPay OtherParams is nil") + this.WelfData.FirstPayDay = info.OtherParams[0] + this.WelfData.FirstPayTickets = info.Ts + } else { + logger.Logger.Errorf("GetPayGoodsInfo FirstRecharge OtherParams is nil") + } + case "ContinuousPay": + if len(info.OtherParams) > 0 { + + this.WelfData.ContinuousPayDay = info.OtherParams[0] + this.WelfData.ContinuousPayTickets = info.Ts + } else { + logger.Logger.Errorf("GetPayGoodsInfo ContinuousPay OtherParams is nil") + } } + this.UpdatePlayerVipBag(info.ShopId) + this.UpdateShopID(info.ShopId) + + this.dirty = true + this.SendDiffData() + + info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum) + + BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false) + + PayGoodsInfo := &player_proto.SCPayGoodsInfo{ + Gold: info.Amount, + Item: itemInfo, + } + proto.SetDefaults(PayGoodsInfo) + this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PAYGOODSINFO), PayGoodsInfo) } - this.UpdatePlayerVipBag(info.ShopId) - this.UpdateShopID(info.ShopId) - - this.dirty = true - this.SendDiffData() - - info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum) - - BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false) - - PayGoodsInfo := &player_proto.SCPayGoodsInfo{ - Gold: info.Amount, - Item: itemInfo, + if info.ConsumeNum > 0 { + TaskSubjectSingleton.Touch(common.TaskTypePay, &TaskData{ + SnId: this.SnId, + Num: int64(info.ConsumeNum), + }) } - proto.SetDefaults(PayGoodsInfo) - this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PAYGOODSINFO), PayGoodsInfo) - TaskSubjectSingleton.Touch(common.TaskTypePay, &TaskData{ - SnId: this.SnId, - Num: int64(info.ConsumeNum), - }) } } @@ -4371,98 +4382,38 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) { } } -func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) { - if this.InviteSnId == 0 { +func InviteTask(platform string, psnid, snid, scoreType int32, n int64) { + if psnid <= 0 || snid <= 0 { return } - - if this.WelfData == nil { - this.WelfData = model.NewWelfareData() - } - if this.WelfData.Task == nil { - this.WelfData.Task = make(map[int32]*model.TaskData) - } + cfg := PlatformMgrSingleton.GetConfig(platform).ActInviteConfig switch scoreType { case common.InviteScoreTypeBind: - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: 5000, - Ts: time.Now().UnixNano(), - }) - case common.InviteScoreTypeLogin: - if this.WelfData.Task[common.TaskIDInviteFirstLogin] == nil { - this.WelfData.Task[common.TaskIDInviteFirstLogin] = &model.TaskData{} // 初始化任务数据 - } - if this.WelfData.Task[common.TaskIDInviteFirstLogin].Ts == 0 { - this.WelfData.Task[common.TaskIDInviteFirstLogin].Ts = time.Now().Unix() + case common.InviteScoreTypePay: + score, ok := cfg.GetPayScore()[n] + if ok { SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, + Platform: platform, + SnId: snid, + InviteSnId: psnid, Tp: scoreType, - Score: 1000, - Ts: time.Now().UnixNano(), + Score: score, + Ts: time.Now().Unix(), + Money: n, + }) + } else { + SaveInviteScore(&model.InviteScore{ + Platform: platform, + SnId: snid, + InviteSnId: psnid, + Tp: common.InviteScoreTypeRecharge, + Score: cfg.GetRechargeScore(), + Ts: time.Now().Unix(), + Money: n, }) } - - case common.InviteScoreTypePlayTimes: - if this.WelfData.Task[common.TaskIDInvitePlayGame] == nil { - this.WelfData.Task[common.TaskIDInvitePlayGame] = &model.TaskData{} // 初始化任务数据 - } - if this.WelfData.Task[common.TaskIDInvitePlayGame].Ts == 0 { - this.WelfData.Task[common.TaskIDInvitePlayGame].Ts = time.Now().Unix() - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: 5000, - Ts: time.Now().UnixNano(), - }) - } - - case common.InviteScoreTypeRecharge: - if this.WelfData.Task[common.TaskIDInviteRecharge] == nil { - this.WelfData.Task[common.TaskIDInviteRecharge] = &model.TaskData{} // 初始化任务数据 - } - this.WelfData.Task[common.TaskIDInviteRecharge].N += n - a := this.WelfData.Task[common.TaskIDInviteRecharge].N / 100 - this.WelfData.Task[common.TaskIDInviteRecharge].N %= 100 - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: a * common.InviteScoreRecharge, - Ts: time.Now().UnixNano(), - Money: n, - }) - - case common.InviteScoreTypeGameTimes: - score := 0 - switch { - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifTienlen): - score = 500 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifThirteen): - score = 300 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifRocket): - score = 30 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifChess): - score = 100 - } - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: int64(score), - Ts: time.Now().UnixNano(), - }) } } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index 83974d4..01f77d7 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -50,6 +50,8 @@ const ( ShopPagePhoneScore = 61 //手机积分商城 ShopPagePhoneScoreGoogle = 62 ShopPageGift = 7 //礼包页面 + ShopPageDiamondBank = 8 //钻石存储罐 + ShopPageBackend = 9 //并不是页面,是后台加币记录类型 ) // 商品类型 diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index cc7ad77..08e8153 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -2,6 +2,7 @@ package main import ( "container/list" + "math" "mongo.games.com/goserver/core/logger" "mongo.games.com/game/common" @@ -72,6 +73,7 @@ type TaskHandle struct { } func (t *TaskHandle) TaskUpdate(id int, data any) { + info, ok := data.(*TaskData) if !ok { return @@ -96,24 +98,22 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeWinTimes: // 赢游戏次数 case common.TaskTypePlayTimes: // 玩游戏次数 - p.InviteTask(common.InviteScoreTypePlayTimes, int32(info.GameID), num) - p.InviteTask(common.InviteScoreTypeGameTimes, int32(info.GameID), num) case common.TaskTypeRankMatchTimes: // 排位赛次数 case common.TaskTypePay: // 玩家充值 p.PhoneLotteryTask(common.TaskTypePay, num) - p.InviteTask(common.InviteScoreTypeRecharge, int32(info.GameID), num) case common.TaskTypeWinOrLose: // 游戏输赢金币数量 p.PhoneLotteryTask(common.TaskTypeWinOrLose, num) case common.TaskTypeTienlenCount: //tienlen游戏场次 p.PhoneLotteryTask(common.TaskTypeTienlenCount, 1) case common.TaskTypeBindInviter: // 绑定邀请人数量 - p.InviteTask(common.InviteScoreTypeBind, 0, num) case common.TaskTypeWinCoin: // 赢取金币数量 - + WelfareMgrSington.UpdateDiamondBankData(p, num, true) + case common.TaskTypeLoseCoin: //输的金币数量 + WelfareMgrSington.UpdateDiamondBankData(p, int64(math.Abs(float64(num))), false) case common.TaskTypeTienlenWinTimes: // tienlen游戏赢取次数 case common.TaskTypeActivityScore: // 活跃积分数量 @@ -123,7 +123,6 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeFirstLogin: //抽奖次数增加 p.PhoneLotteryTask(common.TaskTypeFirstLogin, 0) - p.InviteTask(common.InviteScoreTypeLogin, int32(info.GameID), num) p.CollectTask(common.TaskTypeFirstLogin, num) case common.TaskTypeInviteNum: @@ -246,4 +245,5 @@ func init() { TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeInviteRecharge, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeLoseCoin, taskHandle) } diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index e9d6fde..3ef1854 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -1206,6 +1206,7 @@ func (this *Tournament) sendPromotionInfo(mc *PlayerMatchContext, sortId int64, Money: data.GetNum(), Tel: mc.p.Tel, CardType: mc.tm.gmd.CardType, + Remark: "比赛场获得奖励", } logger.Logger.Trace("GetMatchAwardCode ", pack) var buff []byte diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 96d40ec..c21e466 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -1708,6 +1708,7 @@ func init() { SnId: player.SnId, Num: money, }) + InviteTask(msg.Platform, player.PSnId, player.SnId, common.InviteScoreTypePay, money) } player.SendDiffData() } @@ -1772,6 +1773,18 @@ func init() { logger.Logger.Errorf("model.UpdatePlayerCoin err:%v.", err) return nil } + + // 充值金额记录 + if money > 0 { + err = model.InsertDbShopLog(model.NewDbShop(findPlayer.Platform, ShopPageBackend, nil, "", 0, 0, int32(money), + 0, nil, 0, "", findPlayer.SnId, 3, "后台离线加币", nil)) + if err != nil { + logger.Logger.Errorf("model.InsertDbShopLog err:%v.", err) + return nil + } + InviteTask(msg.Platform, findPlayer.PSnId, findPlayer.SnId, common.InviteScoreTypePay, money) + } + //账变记录 err = model.InsertCoinLog(coinlogex) if err != nil { @@ -2468,7 +2481,7 @@ func init() { if len(ret.List) > 0 { playerRankScore = ret.List[0] } - playerBagInfo = model.GetBagInfo(id, platform) + playerBagInfo, _ = model.GetBagInfo(id, platform) return data }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { playerData, ok := data.(*model.PlayerData) @@ -2559,7 +2572,7 @@ func init() { for _, v := range ret.List { playerRankScore[v.SnId] = v //todo 优化 - items := model.GetBagInfo(v.SnId, msg.GetPlatform()) + items, _ := model.GetBagInfo(v.SnId, msg.GetPlatform()) playerItems[v.SnId] = items } @@ -4060,6 +4073,7 @@ func init() { WebAPIHandlerMgrSingleton.RegisteWebAPIHandler("/api/pay/CallbackPayment", WebAPIHandlerWrapper( func(tNode *transact.TransNode, params []byte) (int, proto.Message) { + logger.Logger.Tracef("api /api/pay/CallbackPayment") msg := &webapiproto.ASCallbackPayment{} pack := &webapiproto.SACallbackPayment{} err := proto.Unmarshal(params, msg) @@ -4078,6 +4092,7 @@ func init() { if info == nil { return errors.New("info is nil") } + logger.Logger.Tracef("/api/pay/CallbackPayment ShopLog %+v", *info) if info.State != 0 { return errors.New("the order state not 0 " + info.LogId.Hex()) } @@ -4105,6 +4120,10 @@ func init() { } } BagMgrSingleton.AddItems(player, items, 0, info.GainWay, "Callback", info.Remark, 0, 0, false) + //钻石存储罐 + if info.PageId == ShopPageDiamondBank { + WelfareMgrSington.DiamondBankTakeCoin(player) + } switch info.Remark { case "BlindBox": if len(info.OtherParams) > 0 { @@ -4143,10 +4162,17 @@ func init() { SnId: player.SnId, Num: int64(info.ConsumeNum), }) + InviteTask(msg.Platform, player.PSnId, player.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) } else { if state == 1 { state = 3 } + psnid, err := model.GetPlayerInviteSnid(msg.Platform, info.SnId) + if err != nil { + logger.Logger.Error("UpdateDbShopState.err:", err) + return err + } + InviteTask(msg.Platform, psnid, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) } err := model.UpdateDbShopState(msg.Platform, msg.OrderId, state) if err != nil { diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 4f3cfed..d5891f9 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2,6 +2,8 @@ package main import ( "fmt" + "math" + "strconv" "time" "mongo.games.com/goserver/core/logger" @@ -288,6 +290,8 @@ func (this *WelfareMgr) MonitorWelfData(player *Player) { player.WelfData.VIPBag = make(map[int32]map[int32]int32) } else if player.WelfData.PigBank == nil { player.WelfData.PigBank = &model.PigBankData{} + } else if player.WelfData.DiamondBank == nil { + player.WelfData.DiamondBank = &model.DiamondBankData{} } } @@ -354,6 +358,8 @@ func (this *WelfareMgr) GetTurnplate(p *Player) { p.WelfData.Sign7.SignTickets = ts // 签到 if len(p.WelfData.Sign7.TurnplateIdx) >= len(turnplate.RateList) { p.WelfData.Sign7.TurnplateIdx = nil + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + p.WelfData.Sign7.AddupIndex = []int32{} } p.WelfData.Sign7.TurnplateIdx = append(p.WelfData.Sign7.TurnplateIdx, int32(idx)) // 获取领取转盘下标 p.WelfData.Sign7.SignIndex += 1 @@ -454,6 +460,9 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) { // 可以领取 p.WelfData.Sign7.VideoTicket = ts index := p.WelfData.Sign7.SignIndex % int32(len(turn.RateList)) + if index == 0 { + index = 7 + } var drawdates []*webapi_proto.WelfareDate for _, v := range sign7.List { if v.Day == index { // 找到对应天数 @@ -635,6 +644,13 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { info := this.GetConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList + //第8天 清除数据 + + if p.WelfData.Sign7.SignIndex%int32(len(turnplate.RateList)) == 0 && (time.Now().Unix()-p.WelfData.Sign7.SignTickets)/86400 >= 1 { + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + p.WelfData.Sign7.AddupIndex = []int32{} + } + if turnplate != nil && sign7 != nil { pack.Switch = turnplate.Switch if turnplate.Switch != model.WelfareClose { @@ -665,6 +681,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { data := &welfare.Welfare7SignDate{ Day: v.Day, } + ad := &welfare.AddUpWelfareDate{} for _, d := range v.Date { data.Date = append(data.Date, &welfare.WelfareDate{ Grade: d.Grade, @@ -674,9 +691,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { }) } for _, d := range v.AddUpDate { // 累计奖励 - ad := &welfare.AddUpWelfareDate{ - AddUpDay: d.AddUpDay, - } + ad.AddUpDay = d.AddUpDay for _, d1 := range d.AddUpDate { ad.AddUpDate = append(ad.AddUpDate, &welfare.WelfareDate{ Grade: d1.Grade, @@ -685,8 +700,42 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { Item_Id: d1.Item_Id, }) } - data.AddUpDate = append(data.AddUpDate, ad) } + //进阶数据 + if p.AppChannel == common.ChannelGooglePlay { + for _, d2 := range v.AddUpDate2Google { + for _, value := range d2.AddUpDate { + ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ + Grade: value.Grade, + Type: value.Type, + Name: value.Name, + Item_Id: value.Item_Id, + }) + } + + } + } else { + for _, d2 := range v.AddUpDate2 { + for _, value := range d2.AddUpDate { + ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ + Grade: value.Grade, + Type: value.Type, + Name: value.Name, + Item_Id: value.Item_Id, + }) + } + + } + } + //进阶奖励领取条件 + for _, value := range v.AddUpDate2Type { + ad.AddUp2Type = append(ad.AddUp2Type, &welfare.AddUp2TypeDate{ + Day: value.Day, + Id: value.Id, + Num: value.Num, + }) + } + data.AddUpDate = append(data.AddUpDate, ad) pack.Slist = append(pack.Slist, data) } pack.TurnplateIdx = append(pack.TurnplateIdx, p.WelfData.Sign7.TurnplateIdx...) @@ -699,11 +748,134 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { pack.SignDay = signIndex pack.AddUpSignDay = append(pack.AddUpSignDay, p.WelfData.Sign7.AddupIndex...) } + //七日签到进阶奖励数据 + // 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) + for day, value := range p.WelfData.Sign7.Addup2Data { + addUp2 := &welfare.Addup2Data{} + addUp2.Day = day + for num, endTime := range value { + addUp2.Num = num + addUp2.EndTime = endTime + } + pack.Addup2 = append(pack.Addup2, addUp2) + } } logger.Logger.Tracef("WelfaredInfo snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_WELFAREINFO), pack) } +// 更新进阶奖励时间 +func (this *WelfareMgr) UpdateAddUp2Date(p *Player, count, day int32, endTime int64) { + if p.WelfData.Sign7.Addup2Data == nil { + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + } + //p.WelfData.Sign7.Addup2Data[day][1] = time.Now().Unix() + 3600 + info := this.GetConfig(p.Platform) + if info == nil { + return + } + sign7 := info.Welfare7SignDateList + if sign7 == nil { + return + } + list := sign7.List + if list == nil { + return + } + addUpDate2Type := list[day-1].AddUpDate2Type + if addUpDate2Type == nil { + return + } + p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) + p.WelfData.Sign7.Addup2Data[day][count] = endTime + //通知客户端 + pack := &welfare.SCSignDayAddup2Award{} + pack.Day = day + pack.Num = count + pack.EndTime = p.WelfData.Sign7.Addup2Data[day][count] + logger.Logger.Trace("通知客户端更新进阶奖励时间!!!!!!!!") + p.SendToClient(int(welfare.SPacketID_PACKET_SC_SignDay_Addup2Award), pack) + if !this.Welfareturnplate(p, 0) { + p.SendShowRed(hall_proto.ShowRedCode_Welfare, 0, 1) // 0 轮盘红点 + } +} + +// 领取进阶奖励 +func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { + // 判断是否已经领取 + Num := int32(0) + EndTime := int64(0) + if p.WelfData.Sign7.Addup2Data[day] == nil { + return + } + for num, endTime := range p.WelfData.Sign7.Addup2Data[day] { + if endTime == -1 { + return + } + if endTime < time.Now().Unix() { + return + } + Num = num + EndTime = endTime + } + //获取配置 + info := this.GetConfig(p.Platform) + if info == nil { + return + } + sign7 := info.Welfare7SignDateList + if sign7 == nil { + return + } + list := sign7.List + if list == nil { + return + } + addUpDate2 := list[day-1].AddUpDate2 + if p.AppChannel == common.ChannelGooglePlay { + addUpDate2 = list[day-1].AddUpDate2Google + } + addUpDate2Type := list[day-1].AddUpDate2Type + if addUpDate2Type == nil { + return + } + typeId := addUpDate2Type[0].Id + addUpDate2Num := addUpDate2Type[0].Num + if typeId == 1 { + Num += 1 + } else { + //扣除钻石 + if p.Diamond < int64(addUpDate2Num) { + return + } + p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7Con, "system", "累计签到进阶奖励钻石消耗") + logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId) + EndTime = -1 + } + p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) + p.WelfData.Sign7.Addup2Data[day][Num+1] = EndTime + if typeId == 1 && Num >= addUpDate2Num { + EndTime = -1 + } + if EndTime == -1 { + //发奖 + var items []*Item + for _, d2 := range addUpDate2 { + for _, value := range d2.AddUpDate { + item := &Item{ + ItemId: value.Item_Id, + ItemNum: int64(value.Grade), + } + items = append(items, item) + } + } + BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7Add, "system", "累计签到进阶奖励获得", 0, 0, false) + } + //通知客户端 + this.UpdateAddUp2Date(p, Num, day, EndTime) + +} + // WelfareSwitch 通知活动开关状态 func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { pack := &player_proto.SCEasyWelfaredInfo{} @@ -851,7 +1023,15 @@ func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点 } } } - + //进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) + for _, data := range p.WelfData.Sign7.Addup2Data { + for _, endTime := range data { + if time.Now().Unix() < endTime && endTime != -1 { + isShow = false // 有未领取进阶奖励 + break + } + } + } } return isShow } @@ -1477,7 +1657,7 @@ func (this *WelfareMgr) PigbankGetInfo(p *Player) { return 0 } - fGetCostDiamond := func(taketimes int32) int64 { + /* fGetCostDiamond := func(taketimes int32) int64 { pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() for _, data := range pool { if taketimes >= data.BuyCountMin && taketimes <= data.BuyCountMax { @@ -1485,16 +1665,31 @@ func (this *WelfareMgr) PigbankGetInfo(p *Player) { } } return 0 + }*/ + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.PigBank.DayBuyTimes+1+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } } + BankMaxCoin := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if p.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankMaxCoin = int64(data.MaxGold) + break + } + } if p.WelfData != nil && p.WelfData.PigBank != nil { pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess pack.BankCoin = p.WelfData.PigBank.BankCoin pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) - pack.BankMaxCoin = int64(fGetPropValue("BankMaxCoin")) + pack.CostDiamond = int64(infoData.CostDiamond) + pack.BankMaxCoin = BankMaxCoin pack.DayBuyMaxCnt = fGetPropValue("DayBuyMaxCnt") - + pack.Price = int64(infoData.CoinPrice) logger.Logger.Tracef("PigbankGetInfo snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankGetInfo), pack) } @@ -1516,7 +1711,7 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { return 0 } - fGetCostDiamond := func(taketimes int32) int64 { + /* fGetCostDiamond := func(taketimes int32) int64 { pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() for _, data := range pool { if taketimes >= data.BuyCountMin && taketimes <= data.BuyCountMax { @@ -1524,14 +1719,29 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } } return 0 + }*/ + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.PigBank.DayBuyTimes+1+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxCoin := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if p.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankMaxCoin = int64(data.MaxGold) + break + } } - BankMaxCoin := int64(fGetPropValue("BankMaxCoin")) DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") if p.WelfData != nil && p.WelfData.PigBank != nil { - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) + pack.CostDiamond = int64(infoData.CostDiamond) pack.BankMaxCoin = BankMaxCoin // 检查每日领取次数 @@ -1543,15 +1753,15 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } // 检查存钱罐是否满 - if p.WelfData.PigBank.BankCoin < BankMaxCoin { - pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankNotFull - logger.Logger.Trace("存钱罐没有满") - p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) - return - } + /* if p.WelfData.PigBank.BankCoin < BankMaxCoin { + pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankNotFull + logger.Logger.Trace("存钱罐没有满") + p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + return + }*/ // 先扣钻石 - costDiamond := fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) + costDiamond := int64(infoData.CostDiamond) if p.Diamond >= costDiamond { logger.Logger.Trace("开存钱罐消耗钻石", costDiamond) p.AddDiamond(-costDiamond, 0, common.GainWay_PigrankTakeCoin, "system", "-开存钱罐消耗钻石") @@ -1563,23 +1773,25 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } if p.WelfData.PigBank.BankCoin >= BankMaxCoin { - pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess - pack.TakeCoinNum = BankMaxCoin - - p.AddCoin(BankMaxCoin, 0, common.GainWay_PigrankGainCoin, "sys", "存钱罐领取金币") - - // 领取完之后 设置为0 - p.WelfData.PigBank.BankCoin = 0 - p.WelfData.PigBank.TakeTimes++ - p.WelfData.PigBank.DayBuyTimes++ - - pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) - pack.DayBuyMaxCnt = DayBuyMaxCnt - - logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) - p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + p.WelfData.PigBank.BankCoin = BankMaxCoin } + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + pack.TakeCoinNum = p.WelfData.PigBank.BankCoin + + p.AddCoin(p.WelfData.PigBank.BankCoin, 0, common.GainWay_PigrankGainCoin, "sys", "存钱罐领取金币") + + // 领取完之后 设置为0 + p.WelfData.PigBank.BankCoin = 0 + p.WelfData.PigBank.TakeTimes++ + p.WelfData.PigBank.DayBuyTimes++ + + pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes + pack.CostDiamond = int64(infoData.CostDiamond) + pack.DayBuyMaxCnt = DayBuyMaxCnt + pack.Price = int64(infoData.CoinPrice) + logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + } } @@ -1591,6 +1803,156 @@ func (this *WelfareMgr) DayResetPigrank(p *Player) { this.PigbankGetInfo(p) } + if p != nil && p.WelfData != nil && p.WelfData.DiamondBank != nil { + p.WelfData.DiamondBank.DayBuyTimes = 0 + this.DiamondBankGetInfo(p) + } +} + +// 钻石储存罐信息 +func (this *WelfareMgr) DiamondBankGetInfo(p *Player) { + pack := &welfare.SCDiamondBankGetInfo{ + OpRetCode: welfare.OpResultCode_OPRC_Error, + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + if p.WelfData.DiamondBank == nil { + p.WelfData.DiamondBank = &model.DiamondBankData{} + } + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxCoin := infoData.MaxDiamond + if p.WelfData != nil && p.WelfData.DiamondBank != nil { + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + pack.BankDiamond = p.WelfData.DiamondBank.BankDiamond + pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes + pack.BankMaxCoin = int64(BankMaxCoin) + pack.DayBuyMaxCnt = fGetPropValue("DayBuyMaxCntDiamond") + pack.Price = int64(infoData.DiamondPrice) + pack.NowPrice = int64(infoData.DiamondNowPrice) + pack.ShopId = infoData.DiamondId + logger.Logger.Tracef("DiamondBankGetInfo snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankGetInfo), pack) + } +} + +// DiamondBankTakeCoin 钻石存钱罐领取钻石 +func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { + pack := &welfare.SCDiamondBankTakeDiamond{ + OpRetCode: welfare.OpResultCode_OPRC_Error, + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxDiamond := int64(infoData.MaxDiamond) + DayBuyMaxCnt := fGetPropValue("DayBuyMaxCntDiamond") + + if p.WelfData != nil && p.WelfData.PigBank != nil { + if p.WelfData.DiamondBank.BankDiamond >= float64(BankMaxDiamond) { + p.WelfData.DiamondBank.BankDiamond = float64(BankMaxDiamond) + } + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + addDiamond := int64(math.Ceil(p.WelfData.DiamondBank.BankDiamond)) + p.AddDiamond(addDiamond, 0, common.GainWay_PigrankGainDiamond, "sys", "存钱罐领取钻石") + + // 领取完之后 设置为0 + p.WelfData.DiamondBank.BankDiamond = 0.0 + p.WelfData.DiamondBank.TakeTimes++ + p.WelfData.DiamondBank.DayBuyTimes++ + + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + pack.BankMaxDiamond = int64(infoData.MaxDiamond) + pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes + pack.DayBuyMaxCnt = DayBuyMaxCnt + pack.TakeDiamondNum = float64(addDiamond) + pack.Price = int64(infoData.DiamondPrice) + pack.NowPrice = int64(infoData.DiamondNowPrice) + pack.ShopId = infoData.DiamondId + logger.Logger.Tracef("DiamondBankTakeCoin snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) + } +} + +// 更新钻石存储罐数据 +func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bool) { + logger.Logger.Trace("更新钻石存储罐数据!!!!!!!!!!") + if p.WelfData.DiamondBank == nil { + p.WelfData.DiamondBank = &model.DiamondBankData{} + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + + if p.WelfData.DiamondBank.DayBuyTimes == fGetPropValue("DayBuyMaxCntDiamond") { + return + } + WinCoinRate := fGetPropValue("WinCoinRateDiamond") + LoseCoinRate := fGetPropValue("LoseCoinRateDiamond") + addDiamond := float64(0) + if isWin { + addDiamond = float64(coinNum) * float64(WinCoinRate) / 10000000 + } else { + addDiamond = float64(coinNum) * float64(LoseCoinRate) / 10000000 + } + //保留小数点后4位 + diamondStr := fmt.Sprintf("%.4f", addDiamond) + addDiamond, _ = strconv.ParseFloat(diamondStr, 64) + p.WelfData.DiamondBank.BankDiamond += addDiamond + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxDiamond := int64(infoData.MaxDiamond) + if p.WelfData.DiamondBank.BankDiamond >= float64(BankMaxDiamond) { + p.WelfData.DiamondBank.BankDiamond = float64(BankMaxDiamond) + } + logger.Logger.Tracef("玩家更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f,本次增加钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond, addDiamond) } func (this *WelfareMgr) Update() { diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index fcc533a..a95651b 100644 Binary files a/xlsx/DB_GameItem.xlsx and b/xlsx/DB_GameItem.xlsx differ diff --git a/xlsx/DB_Game_Drop.xlsx b/xlsx/DB_Game_Drop.xlsx index 9137c36..2727c28 100644 Binary files a/xlsx/DB_Game_Drop.xlsx and b/xlsx/DB_Game_Drop.xlsx differ diff --git a/xlsx/DB_PetSkill.xlsx b/xlsx/DB_PetSkill.xlsx new file mode 100644 index 0000000..b842985 Binary files /dev/null and b/xlsx/DB_PetSkill.xlsx differ diff --git a/xlsx/DB_PigBank_Diamond.xlsx b/xlsx/DB_PigBank_Diamond.xlsx index 41036db..9d17b20 100644 Binary files a/xlsx/DB_PigBank_Diamond.xlsx and b/xlsx/DB_PigBank_Diamond.xlsx differ diff --git a/xlsx/DB_Pigbank_Prop.xlsx b/xlsx/DB_Pigbank_Prop.xlsx index 96f14bb..8b44f8e 100644 Binary files a/xlsx/DB_Pigbank_Prop.xlsx and b/xlsx/DB_Pigbank_Prop.xlsx differ diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 0008809..466a32b 100644 Binary files a/xlsx/DB_Task.xlsx and b/xlsx/DB_Task.xlsx differ diff --git a/xlsx/DB_VIP.xlsx b/xlsx/DB_VIP.xlsx index 8389731..5452940 100644 Binary files a/xlsx/DB_VIP.xlsx and b/xlsx/DB_VIP.xlsx differ