diff --git a/Dockerfile b/Dockerfile index c21953d..e85fd72 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,11 @@ RUN go build -ldflags="-s -w" -o /src/cmd/api/yl cmd/api/yl.go FROM registry.cn-chengdu.aliyuncs.com/go_ls/alpha:v1 AS runtime +RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories \ +&& echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/community' >>/etc/apk/repositories \ +&& apk update && apk add tzdata \ +&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ +&& echo "Asia/Shanghai" > /etc/timezone COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt diff --git a/cmd/api/config/config.yaml b/cmd/api/config/config.yaml index a348ec0..2aad47e 100644 --- a/cmd/api/config/config.yaml +++ b/cmd/api/config/config.yaml @@ -6,9 +6,21 @@ Cache: Pass: lansexiongdi@666 Nacos: Endpoints: - - transfer_middleware:10001 + - 120.55.12.245:10001 Sys: PrimaryKey: "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5FGH7Tq5u7pA/eh6AjAS0InykvWDJt095go8yK3w7+TRIhSYDdbRHlTgOQm4nWuMPfz3U2Rs1vJQwyyEYdylcYJ2zFLr7Vb1BdvkJ3Kz/2yJ6sz3BNq6xAHaeCKzA/WZxnc/ypfkGlrmfr2tNqCM9CUHUWryihBjLxwRiWLmo0aKgYpKLKYNixLgyqUYAifD3APncAduv6sSjUPMTyXMOlP1DXgVwX6IaUG/yV8/56Ew72Vdi/y4qZmCKMmXq4PovWrs8ISOEuhxbfLrGWbGCAVYPq7d7XaH+AOY4dhJZm7OZ43UGWw80QKGEPkvU4Oquzu8BqBh12md7Zsd6r0XzAgMBAAECggEAcLgTPKUc437z51UOwqeELdlbJFIaYn/8LTrwz1NgpH4P86L0FeNX2sjsjPK0d8+IvmV2WO2o/r9NWbI9A9N/Iz3MjcawYmZDj11QK0t1KZZil2wWzlfpaO+pTnJmFFvASq4ceeHPms2tW63QokkmvQOoTha9EBV3rJQW/XagDEolty57kkfmB31cQHJuAt+BF5EzBqv3q3jnqhsj8J/ddT0hadyKq65u85VomLH92asu/KKMKYYXC8aHjgX48chAmQUAHGM/HCD2owLHwtei2kPWNDx85ecBsglIX3wy0yhH1dnL+o3eeskVLl89ye3QCJPHJBaNUUfbgucgWT0bsQKBgQD1pPMAe31ZXajl9WlHMtn8qhpAGzi/GiiH6YrrHMQECC2GGuAakBko1Vhc+2HU35gwlPOhwMIOCapB0cCqcZVo3+71AKo78YvZLQ7yMuSsp0/Wn2N79NZ6+++wtHGPP9eHrLuWm23l15W7W0RcQptTaQupbculMQZ8b6cAjh6d1QKBgQDA4c4Xl2ePbQdgMMOuKTPPKF3QI1VhCVtxSV+Gj9MZBZedstz9+ZO3oxHhy8D5S9it1hE6dn6/a+7OWibZ/gBr1S0+11LcwKDb7q30dimr9bQs/srIywpoIIN8wVEkX4P9JLOWgQeAtq53IMba+cElef916aqyJpXuIek9lvUQpwKBgQCD7alNMwWpf3H8v4dhY+BLoRgkIfqiOGxYQogHqhVkjPfWNIzz9zxr/9lLZv+uEsBsJzOKRjpyy6ITY5H0eLhj8REnqMnFE/+mDlsenVLPn7Rzcns90ct3leOvpdnvs7wP9CdzxdqKPPUAAQ5/9o3xiFNpFbzv5Zq0LkslMy8iWQKBgQCiRJWctUxzllcRLpVBTPqAOkaKV195zmR2rzLFQvRmZZUDH7nZlQEYCgF+Q2tqj8uPm7tMwumo4wW55pAu7witr19sMbxNaWUrAeao9kvilkfpXsV9HYv4w/m6l+xKvGyPKDRJ1u1X9Nhb8mA5UsqSW8t2CIoJbHrQJwlRPlGXmwKBgQDg4rcsM2PmShOg8lSrHXPATXiZyyqpPJLpXbV6DRKyt7U6KWjyrplQN7yOoIUgsuD2OC/q67y7w1P3OY7X0RDnMr6MtIV0JyBJHg24eyBTqeLai2DqoHlsBOSvpJDZf+g/DXCjvHMWp1h0wqdj3aLthmU0dHM/CEqr/o7d8GwrGQ==" Url: "http://pre.22233.cn/" KEY: "da4953198bce4bc8eca9ff7101ae7eb8" -YouleHost: https://vshopmain.sdycsdyc.cn \ No newline at end of file +YouleHost: https://vshopmain.sdycsdyc.cn + +MarketConfig: + AppId: "2783278" + PosId: "2783278" + SupplierSkuId: + 872: "yl20240730" + +DB: + Master: + DataSource: root:lansexiongdi6,@tcp(47.97.27.195:3306)/transfer?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai + Slave: + DataSource: root:lansexiongdi6,@tcp(47.97.27.195:3306)/transfer?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai \ No newline at end of file diff --git a/cmd/api/internal/config/config.go b/cmd/api/internal/config/config.go index 982a638..cbbba1f 100644 --- a/cmd/api/internal/config/config.go +++ b/cmd/api/internal/config/config.go @@ -16,6 +16,14 @@ type Config struct { } YouleHost string MarketConfig MarketConfig + DB struct { + Master struct { + DataSource string + } + Slave struct { + DataSource string + } + } } type Rpc struct { diff --git a/cmd/api/internal/handler/yl/getOrderHandler.go b/cmd/api/internal/handler/yl/getOrderHandler.go new file mode 100644 index 0000000..484d6e7 --- /dev/null +++ b/cmd/api/internal/handler/yl/getOrderHandler.go @@ -0,0 +1,36 @@ +package yl + +import ( + "errors" + "net/http" + "rs/genModel" + "rs/untils/response" + + "github.com/zeromicro/go-zero/rest/httpx" + "rs/cmd/api/internal/logic/yl" + "rs/cmd/api/internal/svc" + "rs/cmd/api/internal/types" +) + +// 订单查询接口 +func GetOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.GetOrderReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := yl.NewGetOrderLogic(r.Context(), svcCtx) + resp, err := l.GetOrder(&req) + if err != nil { + if errors.Is(err, genModel.ErrNotFound) { + response.Err(w, response.HTTP_REUEST_NOT_FOUND, "") + } else { + response.Err(w, response.HTTP_REUEST_FAIL, err.Error()) + } + } else { + response.Suc(w, response.HTTP_SUCCESS, resp) + } + } +} diff --git a/cmd/api/internal/handler/yl/ylAsyncHandler.go b/cmd/api/internal/handler/yl/ylAsyncHandler.go index 4192a4d..e9f1f73 100644 --- a/cmd/api/internal/handler/yl/ylAsyncHandler.go +++ b/cmd/api/internal/handler/yl/ylAsyncHandler.go @@ -2,6 +2,7 @@ package yl import ( "net/http" + "rs/untils/response" "github.com/zeromicro/go-zero/rest/httpx" "rs/cmd/api/internal/logic/yl" @@ -21,9 +22,9 @@ func YlAsyncHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { l := yl.NewYlAsyncLogic(r.Context(), svcCtx) resp, err := l.YlAsync(&req) if err != nil { - httpx.ErrorCtx(r.Context(), w, err) + response.Err(w, response.HTTP_REUEST_FAIL, err.Error()) } else { - httpx.OkJsonCtx(r.Context(), w, resp) + response.Suc(w, response.HTTP_SUCCESS, resp) } } } diff --git a/cmd/api/internal/logic/yl/getOrderLogic.go b/cmd/api/internal/logic/yl/getOrderLogic.go new file mode 100644 index 0000000..7793692 --- /dev/null +++ b/cmd/api/internal/logic/yl/getOrderLogic.go @@ -0,0 +1,110 @@ +package yl + +import ( + "context" + "encoding/json" + "fmt" + "github.com/zeromicro/go-zero/core/logx" + "rs/cmd/api/internal/logic/vo" + "rs/cmd/api/internal/svc" + "rs/cmd/api/internal/types" + "rs/rpc/transfer" + "strconv" + "time" +) + +type GetOrderLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +// 订单查询接口 +func NewGetOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetOrderLogic { + return &GetOrderLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *GetOrderLogic) GetOrder(req *types.GetOrderReq) (resp *types.GetOrderRsp, err error) { + var ( + status int + ) + + order, err := l.svcCtx.BaseServiceContext.YlOrderMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, req.SupplierOrderNo) + if err != nil { + return + } + + data := transfer.MarketKeySendRes{} + err = json.Unmarshal([]byte(order.Resp), &data) + if err != nil { + return + } + + if data.Data.ShortUrl != "" { + status = 1 + } + accouont, _ := strconv.Atoi(order.Account) + supplierId, _ := strconv.Atoi(order.SupplierId) + resp = &types.GetOrderRsp{ + DeliverOrderNo: req.DeliverOrderNo, + SupplierOrderNo: req.SupplierOrderNo, + SupplierSkuId: order.SupplierSkuId, + Account: int64(accouont), + SendStatus: status, + Price: 0, + StatusTime: order.UpdateTime.Unix(), + Msg: "", + SupplierId: int64(supplierId), + CardNo: "", + CardKey: "", + CardExpireTime: "", + CardExchangeUrl: data.Data.ShortUrl, + } + + return +} + +func (l *GetOrderLogic) GetOrder2(req *types.GetOrderReq) (resp *types.GetOrderRsp, err error) { + request := transfer.MarketQueryReq{ + AppId: l.svcCtx.Config.MarketConfig.AppId, + //Sign: "", + ReqCode: "voucher.query", + MemId: fmt.Sprintf("%d", req.SupplierId), + ReqSerialNo: req.DeliverOrderNo, + Timestamp: time.Unix(req.RequestTime, 0).Format("20060102150405"), + VoucherId: "", + VoucherCode: req.SupplierOrderNo, + } + + request.Sign = l.svcCtx.Config.Sys.PrimaryKey + + result, err := l.svcCtx.TransferRpc.MarketQuery(l.ctx, &request) + if err != nil { + return + } + if result.ErrCode != vo.RES_SUCCESS { + return nil, fmt.Errorf("请求失败:%v", result.Msg) + } + + resp = &types.GetOrderRsp{ + DeliverOrderNo: req.DeliverOrderNo, + SupplierOrderNo: req.SupplierOrderNo, + //SupplierSkuId: req, + //Count: req., + SendStatus: 1, + Price: 0, + StatusTime: 0, + Msg: "", + SupplierId: 0, + CardNo: "", + CardKey: "", + CardExpireTime: "", + CardExchangeUrl: result.Data.VoucherCode, + } + + return +} diff --git a/cmd/api/internal/logic/yl/ylAsyncLogic.go b/cmd/api/internal/logic/yl/ylAsyncLogic.go index d58e403..99d840a 100644 --- a/cmd/api/internal/logic/yl/ylAsyncLogic.go +++ b/cmd/api/internal/logic/yl/ylAsyncLogic.go @@ -2,9 +2,12 @@ package yl import ( "context" + "database/sql" "encoding/json" + "errors" "fmt" "github.com/bytedance/sonic" + "rs/genModel" "rs/untils/sign" "rs/cmd/api/internal/logic/vo" @@ -77,16 +80,19 @@ func (l *YlAsyncLogic) YlAsync(req *types.AsyncReq) (resp *types.AsyncResp, err return nil, fmt.Errorf("请求失败:%v", result.Msg) } - supplierOrderNo := l.getExchangeCode(result.Data.VoucherCode) - if supplierOrderNo == "" { + if result.Data.VoucherCode == "" { return nil, fmt.Errorf("请求失败未取到数据:%v", result.Msg) } + supplierOrderNo := req.DeliverOrderNo // 异步通知 go func() { time.Sleep(2 * time.Second) l.asyncSendMarket(supplierOrderNo, req, result.Data) }() + // 记录订单 + l.saveOrder(req, result, supplierOrderNo, VoucherId) + return &types.AsyncResp{ Msg: "", Status: 0, @@ -115,7 +121,7 @@ func (l *YlAsyncLogic) asyncSendMarket(supplierOrderNo string, asyncReq *types.A SupplierSkuId: asyncReq.SupplierSkuId, RequestTime: time.Now().Unix(), Account: asyncReq.Account, - Status: 2, + Status: 1, Msg: "", Price: asyncReq.Price, SupplierId: asyncReq.SupplierId, @@ -132,7 +138,7 @@ func (l *YlAsyncLogic) asyncSendMarket(supplierOrderNo string, asyncReq *types.A if err != nil { return } - req.Sign, err = sign.GetSign(reqDataMap, l.svcCtx.Config.Sys.PrimaryKey) + req.Sign, err = sign.GetSign(reqDataMap, l.svcCtx.Config.Sys.Key) if err != nil { l.Logger.Errorf("签名失败:%v", err.Error()) return @@ -153,3 +159,40 @@ func (l *YlAsyncLogic) asyncSendMarket(supplierOrderNo string, asyncReq *types.A return } + +func (l *YlAsyncLogic) saveOrder(req *types.AsyncReq, rsp *transfer.MarketKeySendRes, supplierOrderNo, VoucherId string) { + + order, err := l.svcCtx.BaseServiceContext.YlOrderMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, supplierOrderNo) + if err != nil { + if !errors.Is(err, genModel.ErrNotFound) { + l.Logger.Errorf("data = %s 查询订单失败:%v", order, err.Error()) + } + } + if order != nil { + l.Logger.Errorf("DeliverOrderNo = %s 订单已存在", order.DeliverOrderNo) + return + } + + b, _ := json.Marshal(rsp) + data := &genModel.YlOrderMarket{ + DeliverOrderNo: req.DeliverOrderNo, + SupplierOrderNo: supplierOrderNo, + SupplierId: fmt.Sprintf("%d", req.SupplierId), + Price: req.Price, + SkuId: req.SkuId, + SupplierSkuId: req.SupplierSkuId, + Account: req.Account, + VoucherId: sql.NullString{ + String: VoucherId, + Valid: true, + }, + Resp: string(b), + Status: 1, + //CreateTime: time.Now(), + } + + _, err = l.svcCtx.BaseServiceContext.YlOrderMarketRepo.Insert(l.ctx, data) + if err != nil { + l.Logger.Errorf("data = %s 插入订单失败:%v", data, err.Error()) + } +} diff --git a/cmd/api/internal/svc/serviceContext.go b/cmd/api/internal/svc/serviceContext.go index 1d449b9..904a685 100644 --- a/cmd/api/internal/svc/serviceContext.go +++ b/cmd/api/internal/svc/serviceContext.go @@ -1,12 +1,14 @@ package svc import ( + "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest" "github.com/zeromicro/go-zero/zrpc" _ "github.com/zeromicro/zero-contrib/zrpc/registry/nacos" "rs/cmd/api/internal/config" "rs/cmd/api/internal/middleware" "rs/cmd/api/internal/types" + "rs/genModel" "rs/rpc/transferClient" ) @@ -20,9 +22,12 @@ func NewServiceContext(c config.Config) *ServiceContext { Endpoints: c.Nacos.Endpoints, })) + sqlConn := sqlx.NewMysql(c.DB.Master.DataSource) + base := types.BaseServiceContext{ - Config: c, - TransferRpc: client, + Config: c, + TransferRpc: client, + YlOrderMarketRepo: genModel.NewYlOrderMarketModel(sqlConn, c.Cache), } return &ServiceContext{ BaseServiceContext: &base, diff --git a/cmd/api/internal/types/extraTypes.go b/cmd/api/internal/types/extraTypes.go index d3daea0..5d0cac9 100644 --- a/cmd/api/internal/types/extraTypes.go +++ b/cmd/api/internal/types/extraTypes.go @@ -13,6 +13,7 @@ type BaseServiceContext struct { Merchant genModel.MerchantModel TransferOrder genModel.ServerOrderModel MerchantWechat genModel.MerchantWechatModel + YlOrderMarketRepo genModel.YlOrderMarketModel } type DecryptReqData struct { @@ -42,7 +43,7 @@ type NotifyReq struct { SupplierOrderNo string `json:"supplierOrderNo"` // 供货商订单号 SupplierSkuId int64 `json:"supplierSkuId"` // 供货商sku RequestTime int64 `json:"requestTime"` // 请求时间 - Account string `json:"thirdSkuId"` // 充值账号 + Account string `json:"account"` // 充值账号 Status int `json:"status"` //错误码: 1-发货成功 2-发货失败 Msg string `json:"msg"` // 错误信息 Price int64 `json:"price"` //结算价格(单位:厘) diff --git a/cmd/api/internal/types/types.go b/cmd/api/internal/types/types.go index ca988ea..261eaa5 100644 --- a/cmd/api/internal/types/types.go +++ b/cmd/api/internal/types/types.go @@ -38,7 +38,7 @@ type GetOrderRsp struct { DeliverOrderNo string `json:"deliverOrderNo"` // 平台订单号 SupplierOrderNo string `json:"supplierOrderNo"` // 供货商订单号 SupplierSkuId int64 `json:"supplierSkuId"` // 供货商sku - Count int64 `json:"count"` //数量(此字段只目前支持是金豆,积分等虚拟资产,其他商品不支持) + Account int64 `json:"account"` //充值账号 SendStatus int `json:"sendStatus"` // 发货状态: 0-发货中 1-发货成功 2-发货失败 Price int64 `json:"price"` //结算价格(单位:厘) StatusTime int64 `json:"statusTime"` // 成功/失败时间 diff --git a/genModel/ylOrderMarketModel.go b/genModel/ylOrderMarketModel.go new file mode 100644 index 0000000..49e4978 --- /dev/null +++ b/genModel/ylOrderMarketModel.go @@ -0,0 +1,27 @@ +package genModel + +import ( + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) + +var _ YlOrderMarketModel = (*customYlOrderMarketModel)(nil) + +type ( + // YlOrderMarketModel is an interface to be customized, add more methods here, + // and implement the added methods in customYlOrderMarketModel. + YlOrderMarketModel interface { + ylOrderMarketModel + } + + customYlOrderMarketModel struct { + *defaultYlOrderMarketModel + } +) + +// NewYlOrderMarketModel returns a model for the database table. +func NewYlOrderMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) YlOrderMarketModel { + return &customYlOrderMarketModel{ + defaultYlOrderMarketModel: newYlOrderMarketModel(conn, c, opts...), + } +} diff --git a/genModel/ylOrderMarketModel_gen.go b/genModel/ylOrderMarketModel_gen.go new file mode 100644 index 0000000..0342371 --- /dev/null +++ b/genModel/ylOrderMarketModel_gen.go @@ -0,0 +1,157 @@ +// Code generated by goctl. DO NOT EDIT. +// versions: +// goctl version: 1.7.2 + +package genModel + +import ( + "context" + "database/sql" + "fmt" + "strings" + "time" + + "github.com/zeromicro/go-zero/core/stores/builder" + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/sqlc" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "github.com/zeromicro/go-zero/core/stringx" +) + +var ( + ylOrderMarketFieldNames = builder.RawFieldNames(&YlOrderMarket{}) + ylOrderMarketRows = strings.Join(ylOrderMarketFieldNames, ",") + ylOrderMarketRowsExpectAutoSet = strings.Join(stringx.Remove(ylOrderMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + ylOrderMarketRowsWithPlaceHolder = strings.Join(stringx.Remove(ylOrderMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" + + cacheTransferYlOrderMarketIdPrefix = "cache:transfer:ylOrderMarket:id:" + cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix = "cache:transfer:ylOrderMarket:deliverOrderNo:supplierOrderNo:" +) + +type ( + ylOrderMarketModel interface { + Insert(ctx context.Context, data *YlOrderMarket) (sql.Result, error) + FindOne(ctx context.Context, id uint64) (*YlOrderMarket, error) + FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrderMarket, error) + Update(ctx context.Context, data *YlOrderMarket) error + Delete(ctx context.Context, id uint64) error + } + + defaultYlOrderMarketModel struct { + sqlc.CachedConn + table string + } + + YlOrderMarket struct { + Id uint64 `db:"id"` + DeliverOrderNo string `db:"deliverOrderNo"` // 平台订单号 + SupplierOrderNo string `db:"supplierOrderNo"` // 供货商订单号 + SupplierId string `db:"supplierId"` // 供货商id + Price int64 `db:"price"` // 结算价格(单位:厘) + SkuId int64 `db:"skuId"` // 平台sku + SupplierSkuId int64 `db:"supplierSkuId"` // 供货商sku + Account string `db:"account"` // 充值账号 + Resp string `db:"resp"` // 响应数据 + CreateTime time.Time `db:"create_time"` + UpdateTime time.Time `db:"update_time"` + Status int64 `db:"status"` // 状态 + VoucherId sql.NullString `db:"VoucherId"` // 批次号 + } +) + +func newYlOrderMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultYlOrderMarketModel { + return &defaultYlOrderMarketModel{ + CachedConn: sqlc.NewConn(conn, c, opts...), + table: "`yl_order_market`", + } +} + +func (m *defaultYlOrderMarketModel) Delete(ctx context.Context, id uint64) error { + data, err := m.FindOne(ctx, id) + if err != nil { + return err + } + + transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo) + transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, id) + _, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { + query := fmt.Sprintf("delete from %s where `id` = ?", m.table) + return conn.ExecCtx(ctx, query, id) + }, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey) + return err +} + +func (m *defaultYlOrderMarketModel) FindOne(ctx context.Context, id uint64) (*YlOrderMarket, error) { + transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, id) + var resp YlOrderMarket + err := m.QueryRowCtx(ctx, &resp, transferYlOrderMarketIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrderMarketRows, m.table) + return conn.QueryRowCtx(ctx, v, query, id) + }) + switch err { + case nil: + return &resp, nil + case sqlc.ErrNotFound: + return nil, ErrNotFound + default: + return nil, err + } +} + +func (m *defaultYlOrderMarketModel) FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrderMarket, error) { + transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, deliverOrderNo, supplierOrderNo) + var resp YlOrderMarket + err := m.QueryRowIndexCtx(ctx, &resp, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) { + query := fmt.Sprintf("select %s from %s where `deliverOrderNo` = ? and `supplierOrderNo` = ? limit 1", ylOrderMarketRows, m.table) + if err := conn.QueryRowCtx(ctx, &resp, query, deliverOrderNo, supplierOrderNo); err != nil { + return nil, err + } + return resp.Id, nil + }, m.queryPrimary) + switch err { + case nil: + return &resp, nil + case sqlc.ErrNotFound: + return nil, ErrNotFound + default: + return nil, err + } +} + +func (m *defaultYlOrderMarketModel) Insert(ctx context.Context, data *YlOrderMarket) (sql.Result, error) { + transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo) + transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, data.Id) + ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { + query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, ylOrderMarketRowsExpectAutoSet) + return conn.ExecCtx(ctx, query, data.DeliverOrderNo, data.SupplierOrderNo, data.SupplierId, data.Price, data.SkuId, data.SupplierSkuId, data.Account, data.Resp, data.Status, data.VoucherId) + }, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey) + return ret, err +} + +func (m *defaultYlOrderMarketModel) Update(ctx context.Context, newData *YlOrderMarket) error { + data, err := m.FindOne(ctx, newData.Id) + if err != nil { + return err + } + + transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo) + transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, data.Id) + _, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { + query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, ylOrderMarketRowsWithPlaceHolder) + return conn.ExecCtx(ctx, query, newData.DeliverOrderNo, newData.SupplierOrderNo, newData.SupplierId, newData.Price, newData.SkuId, newData.SupplierSkuId, newData.Account, newData.Resp, newData.Status, newData.VoucherId, newData.Id) + }, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey) + return err +} + +func (m *defaultYlOrderMarketModel) formatPrimary(primary any) string { + return fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, primary) +} + +func (m *defaultYlOrderMarketModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrderMarketRows, m.table) + return conn.QueryRowCtx(ctx, v, query, primary) +} + +func (m *defaultYlOrderMarketModel) tableName() string { + return m.table +} diff --git a/rpc/transfer.proto b/rpc/transfer.proto index 12c0bdb..129b643 100644 --- a/rpc/transfer.proto +++ b/rpc/transfer.proto @@ -79,7 +79,7 @@ message MarketQueryRes { message MarketQueryReq { string app_id = 1; - uint64 sign = 2; + string sign = 2; string req_code = 3; string mem_id = 4; string req_serial_no = 5; @@ -103,7 +103,7 @@ message MarketKeyDiscardRes { message MarketKeyDiscardReq { string app_id = 1; - uint64 sign = 2; + string sign = 2; string req_code = 3; string mem_id = 4; string req_serial_no = 5; diff --git a/rpc/transfer/transfer.pb.go b/rpc/transfer/transfer.pb.go index 45a20e6..153779e 100644 --- a/rpc/transfer/transfer.pb.go +++ b/rpc/transfer/transfer.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v3.6.1 +// protoc-gen-go v1.34.2 +// protoc (unknown) // source: transfer.proto package transfer @@ -138,6 +138,337 @@ func (x *DefaultReq) GetSign() string { return "" } +type NewMarketDiscardReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + OutBizNo string `protobuf:"bytes,2,opt,name=out_biz_no,json=outBizNo,proto3" json:"out_biz_no,omitempty"` + TradeNo string `protobuf:"bytes,3,opt,name=trade_no,json=tradeNo,proto3" json:"trade_no,omitempty"` +} + +func (x *NewMarketDiscardReq) Reset() { + *x = NewMarketDiscardReq{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketDiscardReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketDiscardReq) ProtoMessage() {} + +func (x *NewMarketDiscardReq) ProtoReflect() protoreflect.Message { + mi := &file_transfer_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewMarketDiscardReq.ProtoReflect.Descriptor instead. +func (*NewMarketDiscardReq) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{2} +} + +func (x *NewMarketDiscardReq) GetAppId() string { + if x != nil { + return x.AppId + } + return "" +} + +func (x *NewMarketDiscardReq) GetOutBizNo() string { + if x != nil { + return x.OutBizNo + } + return "" +} + +func (x *NewMarketDiscardReq) GetTradeNo() string { + if x != nil { + return x.TradeNo + } + return "" +} + +type NewMarketDiscardRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *NewMarketDiscardRes) Reset() { + *x = NewMarketDiscardRes{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketDiscardRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketDiscardRes) ProtoMessage() {} + +func (x *NewMarketDiscardRes) ProtoReflect() protoreflect.Message { + mi := &file_transfer_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 NewMarketDiscardRes.ProtoReflect.Descriptor instead. +func (*NewMarketDiscardRes) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{3} +} + +func (x *NewMarketDiscardRes) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *NewMarketDiscardRes) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *NewMarketDiscardRes) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +type NewMarketQueryReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + OutBizNo string `protobuf:"bytes,2,opt,name=out_biz_no,json=outBizNo,proto3" json:"out_biz_no,omitempty"` + TradeNo string `protobuf:"bytes,3,opt,name=trade_no,json=tradeNo,proto3" json:"trade_no,omitempty"` +} + +func (x *NewMarketQueryReq) Reset() { + *x = NewMarketQueryReq{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketQueryReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketQueryReq) ProtoMessage() {} + +func (x *NewMarketQueryReq) ProtoReflect() protoreflect.Message { + mi := &file_transfer_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewMarketQueryReq.ProtoReflect.Descriptor instead. +func (*NewMarketQueryReq) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{4} +} + +func (x *NewMarketQueryReq) GetAppId() string { + if x != nil { + return x.AppId + } + return "" +} + +func (x *NewMarketQueryReq) GetOutBizNo() string { + if x != nil { + return x.OutBizNo + } + return "" +} + +func (x *NewMarketQueryReq) GetTradeNo() string { + if x != nil { + return x.TradeNo + } + return "" +} + +type NewMarketOrderReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AppId string `protobuf:"bytes,4,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + OutBizNo string `protobuf:"bytes,1,opt,name=out_biz_no,json=outBizNo,proto3" json:"out_biz_no,omitempty"` + ActivityNo string `protobuf:"bytes,2,opt,name=activity_no,json=activityNo,proto3" json:"activity_no,omitempty"` + Number int32 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"` +} + +func (x *NewMarketOrderReq) Reset() { + *x = NewMarketOrderReq{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketOrderReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketOrderReq) ProtoMessage() {} + +func (x *NewMarketOrderReq) ProtoReflect() protoreflect.Message { + mi := &file_transfer_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 NewMarketOrderReq.ProtoReflect.Descriptor instead. +func (*NewMarketOrderReq) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{5} +} + +func (x *NewMarketOrderReq) GetAppId() string { + if x != nil { + return x.AppId + } + return "" +} + +func (x *NewMarketOrderReq) GetOutBizNo() string { + if x != nil { + return x.OutBizNo + } + return "" +} + +func (x *NewMarketOrderReq) GetActivityNo() string { + if x != nil { + return x.ActivityNo + } + return "" +} + +func (x *NewMarketOrderReq) GetNumber() int32 { + if x != nil { + return x.Number + } + return 0 +} + +type NewMarketOrderRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` + Data *NewMarketOrderRes_Data `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *NewMarketOrderRes) Reset() { + *x = NewMarketOrderRes{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketOrderRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketOrderRes) ProtoMessage() {} + +func (x *NewMarketOrderRes) ProtoReflect() protoreflect.Message { + mi := &file_transfer_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewMarketOrderRes.ProtoReflect.Descriptor instead. +func (*NewMarketOrderRes) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{6} +} + +func (x *NewMarketOrderRes) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *NewMarketOrderRes) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *NewMarketOrderRes) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *NewMarketOrderRes) GetData() *NewMarketOrderRes_Data { + if x != nil { + return x.Data + } + return nil +} + type RsCouponGrantReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -153,7 +484,7 @@ type RsCouponGrantReq struct { func (x *RsCouponGrantReq) Reset() { *x = RsCouponGrantReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[2] + mi := &file_transfer_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -166,7 +497,7 @@ func (x *RsCouponGrantReq) String() string { func (*RsCouponGrantReq) ProtoMessage() {} func (x *RsCouponGrantReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[2] + mi := &file_transfer_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -179,7 +510,7 @@ func (x *RsCouponGrantReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RsCouponGrantReq.ProtoReflect.Descriptor instead. func (*RsCouponGrantReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{2} + return file_transfer_proto_rawDescGZIP(), []int{7} } func (x *RsCouponGrantReq) GetVendorNo() string { @@ -231,7 +562,7 @@ type RsCouponGrantRes struct { func (x *RsCouponGrantRes) Reset() { *x = RsCouponGrantRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[3] + mi := &file_transfer_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -244,7 +575,7 @@ func (x *RsCouponGrantRes) String() string { func (*RsCouponGrantRes) ProtoMessage() {} func (x *RsCouponGrantRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[3] + mi := &file_transfer_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -257,7 +588,7 @@ func (x *RsCouponGrantRes) ProtoReflect() protoreflect.Message { // Deprecated: Use RsCouponGrantRes.ProtoReflect.Descriptor instead. func (*RsCouponGrantRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{3} + return file_transfer_proto_rawDescGZIP(), []int{8} } func (x *RsCouponGrantRes) GetCode() string { @@ -301,7 +632,7 @@ type MarketQueryRes struct { func (x *MarketQueryRes) Reset() { *x = MarketQueryRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[4] + mi := &file_transfer_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -314,7 +645,7 @@ func (x *MarketQueryRes) String() string { func (*MarketQueryRes) ProtoMessage() {} func (x *MarketQueryRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[4] + mi := &file_transfer_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -327,7 +658,7 @@ func (x *MarketQueryRes) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketQueryRes.ProtoReflect.Descriptor instead. func (*MarketQueryRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{4} + return file_transfer_proto_rawDescGZIP(), []int{9} } func (x *MarketQueryRes) GetErrCode() string { @@ -357,7 +688,7 @@ type MarketQueryReq struct { unknownFields protoimpl.UnknownFields AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - Sign uint64 `protobuf:"varint,2,opt,name=sign,proto3" json:"sign,omitempty"` + Sign string `protobuf:"bytes,2,opt,name=sign,proto3" json:"sign,omitempty"` ReqCode string `protobuf:"bytes,3,opt,name=req_code,json=reqCode,proto3" json:"req_code,omitempty"` MemId string `protobuf:"bytes,4,opt,name=mem_id,json=memId,proto3" json:"mem_id,omitempty"` ReqSerialNo string `protobuf:"bytes,5,opt,name=req_serial_no,json=reqSerialNo,proto3" json:"req_serial_no,omitempty"` @@ -369,7 +700,7 @@ type MarketQueryReq struct { func (x *MarketQueryReq) Reset() { *x = MarketQueryReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[5] + mi := &file_transfer_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -382,7 +713,7 @@ func (x *MarketQueryReq) String() string { func (*MarketQueryReq) ProtoMessage() {} func (x *MarketQueryReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[5] + mi := &file_transfer_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -395,7 +726,7 @@ func (x *MarketQueryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketQueryReq.ProtoReflect.Descriptor instead. func (*MarketQueryReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{5} + return file_transfer_proto_rawDescGZIP(), []int{10} } func (x *MarketQueryReq) GetAppId() string { @@ -405,11 +736,11 @@ func (x *MarketQueryReq) GetAppId() string { return "" } -func (x *MarketQueryReq) GetSign() uint64 { +func (x *MarketQueryReq) GetSign() string { if x != nil { return x.Sign } - return 0 + return "" } func (x *MarketQueryReq) GetReqCode() string { @@ -467,7 +798,7 @@ type MarketKeyDiscardRes struct { func (x *MarketKeyDiscardRes) Reset() { *x = MarketKeyDiscardRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[6] + mi := &file_transfer_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -480,7 +811,7 @@ func (x *MarketKeyDiscardRes) String() string { func (*MarketKeyDiscardRes) ProtoMessage() {} func (x *MarketKeyDiscardRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[6] + mi := &file_transfer_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -493,7 +824,7 @@ func (x *MarketKeyDiscardRes) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeyDiscardRes.ProtoReflect.Descriptor instead. func (*MarketKeyDiscardRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{6} + return file_transfer_proto_rawDescGZIP(), []int{11} } func (x *MarketKeyDiscardRes) GetErrCode() string { @@ -523,7 +854,7 @@ type MarketKeyDiscardReq struct { unknownFields protoimpl.UnknownFields AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - Sign uint64 `protobuf:"varint,2,opt,name=sign,proto3" json:"sign,omitempty"` + Sign string `protobuf:"bytes,2,opt,name=sign,proto3" json:"sign,omitempty"` ReqCode string `protobuf:"bytes,3,opt,name=req_code,json=reqCode,proto3" json:"req_code,omitempty"` MemId string `protobuf:"bytes,4,opt,name=mem_id,json=memId,proto3" json:"mem_id,omitempty"` ReqSerialNo string `protobuf:"bytes,5,opt,name=req_serial_no,json=reqSerialNo,proto3" json:"req_serial_no,omitempty"` @@ -535,7 +866,7 @@ type MarketKeyDiscardReq struct { func (x *MarketKeyDiscardReq) Reset() { *x = MarketKeyDiscardReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[7] + mi := &file_transfer_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -548,7 +879,7 @@ func (x *MarketKeyDiscardReq) String() string { func (*MarketKeyDiscardReq) ProtoMessage() {} func (x *MarketKeyDiscardReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[7] + mi := &file_transfer_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -561,7 +892,7 @@ func (x *MarketKeyDiscardReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeyDiscardReq.ProtoReflect.Descriptor instead. func (*MarketKeyDiscardReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{7} + return file_transfer_proto_rawDescGZIP(), []int{12} } func (x *MarketKeyDiscardReq) GetAppId() string { @@ -571,11 +902,11 @@ func (x *MarketKeyDiscardReq) GetAppId() string { return "" } -func (x *MarketKeyDiscardReq) GetSign() uint64 { +func (x *MarketKeyDiscardReq) GetSign() string { if x != nil { return x.Sign } - return 0 + return "" } func (x *MarketKeyDiscardReq) GetReqCode() string { @@ -633,7 +964,7 @@ type MarketKeySendRes struct { func (x *MarketKeySendRes) Reset() { *x = MarketKeySendRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[8] + mi := &file_transfer_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -646,7 +977,7 @@ func (x *MarketKeySendRes) String() string { func (*MarketKeySendRes) ProtoMessage() {} func (x *MarketKeySendRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[8] + mi := &file_transfer_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -659,7 +990,7 @@ func (x *MarketKeySendRes) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeySendRes.ProtoReflect.Descriptor instead. func (*MarketKeySendRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{8} + return file_transfer_proto_rawDescGZIP(), []int{13} } func (x *MarketKeySendRes) GetErrCode() string { @@ -699,13 +1030,12 @@ type MarketKeySendReq struct { VoucherNum int64 `protobuf:"varint,9,opt,name=voucher_num,json=voucherNum,proto3" json:"voucher_num,omitempty"` MobileNo string `protobuf:"bytes,10,opt,name=mobile_no,json=mobileNo,proto3" json:"mobile_no,omitempty"` SendMsg string `protobuf:"bytes,11,opt,name=send_msg,json=sendMsg,proto3" json:"send_msg,omitempty"` - StoreId string `protobuf:"bytes,12,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` } func (x *MarketKeySendReq) Reset() { *x = MarketKeySendReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[9] + mi := &file_transfer_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -718,7 +1048,7 @@ func (x *MarketKeySendReq) String() string { func (*MarketKeySendReq) ProtoMessage() {} func (x *MarketKeySendReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[9] + mi := &file_transfer_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -731,7 +1061,7 @@ func (x *MarketKeySendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeySendReq.ProtoReflect.Descriptor instead. func (*MarketKeySendReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{9} + return file_transfer_proto_rawDescGZIP(), []int{14} } func (x *MarketKeySendReq) GetAppId() string { @@ -811,13 +1141,6 @@ func (x *MarketKeySendReq) GetSendMsg() string { return "" } -func (x *MarketKeySendReq) GetStoreId() string { - if x != nil { - return x.StoreId - } - return "" -} - type ZltxRechargeProductRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -831,7 +1154,7 @@ type ZltxRechargeProductRes struct { func (x *ZltxRechargeProductRes) Reset() { *x = ZltxRechargeProductRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[10] + mi := &file_transfer_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +1167,7 @@ func (x *ZltxRechargeProductRes) String() string { func (*ZltxRechargeProductRes) ProtoMessage() {} func (x *ZltxRechargeProductRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[10] + mi := &file_transfer_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +1180,7 @@ func (x *ZltxRechargeProductRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxRechargeProductRes.ProtoReflect.Descriptor instead. func (*ZltxRechargeProductRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{10} + return file_transfer_proto_rawDescGZIP(), []int{15} } func (x *ZltxRechargeProductRes) GetCode() string { @@ -893,7 +1216,7 @@ type ZltxRechargeInfoRes struct { func (x *ZltxRechargeInfoRes) Reset() { *x = ZltxRechargeInfoRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[11] + mi := &file_transfer_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -906,7 +1229,7 @@ func (x *ZltxRechargeInfoRes) String() string { func (*ZltxRechargeInfoRes) ProtoMessage() {} func (x *ZltxRechargeInfoRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[11] + mi := &file_transfer_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -919,7 +1242,7 @@ func (x *ZltxRechargeInfoRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxRechargeInfoRes.ProtoReflect.Descriptor instead. func (*ZltxRechargeInfoRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{11} + return file_transfer_proto_rawDescGZIP(), []int{16} } func (x *ZltxRechargeInfoRes) GetCode() string { @@ -950,7 +1273,7 @@ type ZltxOrderSmsRes struct { func (x *ZltxOrderSmsRes) Reset() { *x = ZltxOrderSmsRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[12] + mi := &file_transfer_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -963,7 +1286,7 @@ func (x *ZltxOrderSmsRes) String() string { func (*ZltxOrderSmsRes) ProtoMessage() {} func (x *ZltxOrderSmsRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[12] + mi := &file_transfer_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -976,7 +1299,7 @@ func (x *ZltxOrderSmsRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderSmsRes.ProtoReflect.Descriptor instead. func (*ZltxOrderSmsRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{12} + return file_transfer_proto_rawDescGZIP(), []int{17} } func (x *ZltxOrderSmsRes) GetCode() string { @@ -1021,7 +1344,7 @@ type ZltxOrderSmsReq struct { func (x *ZltxOrderSmsReq) Reset() { *x = ZltxOrderSmsReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[13] + mi := &file_transfer_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1034,7 +1357,7 @@ func (x *ZltxOrderSmsReq) String() string { func (*ZltxOrderSmsReq) ProtoMessage() {} func (x *ZltxOrderSmsReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[13] + mi := &file_transfer_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1047,7 +1370,7 @@ func (x *ZltxOrderSmsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderSmsReq.ProtoReflect.Descriptor instead. func (*ZltxOrderSmsReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{13} + return file_transfer_proto_rawDescGZIP(), []int{18} } func (x *ZltxOrderSmsReq) GetMerchantId() int64 { @@ -1092,7 +1415,7 @@ type ZltxOrderCardQueryRes struct { func (x *ZltxOrderCardQueryRes) Reset() { *x = ZltxOrderCardQueryRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[14] + mi := &file_transfer_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1105,7 +1428,7 @@ func (x *ZltxOrderCardQueryRes) String() string { func (*ZltxOrderCardQueryRes) ProtoMessage() {} func (x *ZltxOrderCardQueryRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[14] + mi := &file_transfer_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1118,7 +1441,7 @@ func (x *ZltxOrderCardQueryRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderCardQueryRes.ProtoReflect.Descriptor instead. func (*ZltxOrderCardQueryRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{14} + return file_transfer_proto_rawDescGZIP(), []int{19} } func (x *ZltxOrderCardQueryRes) GetCode() string { @@ -1163,7 +1486,7 @@ type ZltxOrderCardQueryReq struct { func (x *ZltxOrderCardQueryReq) Reset() { *x = ZltxOrderCardQueryReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[15] + mi := &file_transfer_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1176,7 +1499,7 @@ func (x *ZltxOrderCardQueryReq) String() string { func (*ZltxOrderCardQueryReq) ProtoMessage() {} func (x *ZltxOrderCardQueryReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[15] + mi := &file_transfer_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1189,7 +1512,7 @@ func (x *ZltxOrderCardQueryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderCardQueryReq.ProtoReflect.Descriptor instead. func (*ZltxOrderCardQueryReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{15} + return file_transfer_proto_rawDescGZIP(), []int{20} } func (x *ZltxOrderCardQueryReq) GetMerchantId() int64 { @@ -1240,7 +1563,7 @@ type ZltxOrderCardReq struct { func (x *ZltxOrderCardReq) Reset() { *x = ZltxOrderCardReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[16] + mi := &file_transfer_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1253,7 +1576,7 @@ func (x *ZltxOrderCardReq) String() string { func (*ZltxOrderCardReq) ProtoMessage() {} func (x *ZltxOrderCardReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[16] + mi := &file_transfer_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1266,7 +1589,7 @@ func (x *ZltxOrderCardReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderCardReq.ProtoReflect.Descriptor instead. func (*ZltxOrderCardReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{16} + return file_transfer_proto_rawDescGZIP(), []int{21} } func (x *ZltxOrderCardReq) GetMerchantId() int64 { @@ -1353,7 +1676,7 @@ type ZltxOrderRechargeQueryRes struct { func (x *ZltxOrderRechargeQueryRes) Reset() { *x = ZltxOrderRechargeQueryRes{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[17] + mi := &file_transfer_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1366,7 +1689,7 @@ func (x *ZltxOrderRechargeQueryRes) String() string { func (*ZltxOrderRechargeQueryRes) ProtoMessage() {} func (x *ZltxOrderRechargeQueryRes) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[17] + mi := &file_transfer_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1379,7 +1702,7 @@ func (x *ZltxOrderRechargeQueryRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderRechargeQueryRes.ProtoReflect.Descriptor instead. func (*ZltxOrderRechargeQueryRes) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{17} + return file_transfer_proto_rawDescGZIP(), []int{22} } func (x *ZltxOrderRechargeQueryRes) GetCode() string { @@ -1424,7 +1747,7 @@ type ZltxOrderRechargeQueryReq struct { func (x *ZltxOrderRechargeQueryReq) Reset() { *x = ZltxOrderRechargeQueryReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[18] + mi := &file_transfer_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1437,7 +1760,7 @@ func (x *ZltxOrderRechargeQueryReq) String() string { func (*ZltxOrderRechargeQueryReq) ProtoMessage() {} func (x *ZltxOrderRechargeQueryReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[18] + mi := &file_transfer_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1450,7 +1773,7 @@ func (x *ZltxOrderRechargeQueryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderRechargeQueryReq.ProtoReflect.Descriptor instead. func (*ZltxOrderRechargeQueryReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{18} + return file_transfer_proto_rawDescGZIP(), []int{23} } func (x *ZltxOrderRechargeQueryReq) GetMerchantId() uint64 { @@ -1501,7 +1824,7 @@ type ZltxOrderRechargeReq struct { func (x *ZltxOrderRechargeReq) Reset() { *x = ZltxOrderRechargeReq{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[19] + mi := &file_transfer_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1514,7 +1837,7 @@ func (x *ZltxOrderRechargeReq) String() string { func (*ZltxOrderRechargeReq) ProtoMessage() {} func (x *ZltxOrderRechargeReq) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[19] + mi := &file_transfer_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1527,7 +1850,7 @@ func (x *ZltxOrderRechargeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxOrderRechargeReq.ProtoReflect.Descriptor instead. func (*ZltxOrderRechargeReq) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{19} + return file_transfer_proto_rawDescGZIP(), []int{24} } func (x *ZltxOrderRechargeReq) GetMerchantId() uint64 { @@ -1600,6 +1923,117 @@ func (x *ZltxOrderRechargeReq) GetExtendParameter() string { return "" } +type NewMarketOrderRes_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OutBizNo string `protobuf:"bytes,1,opt,name=out_biz_no,json=outBizNo,proto3" json:"out_biz_no,omitempty"` + TradeNo string `protobuf:"bytes,2,opt,name=trade_no,json=tradeNo,proto3" json:"trade_no,omitempty"` + Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` + ValidBeginTime string `protobuf:"bytes,6,opt,name=valid_begin_time,json=validBeginTime,proto3" json:"valid_begin_time,omitempty"` + ValidEndTime string `protobuf:"bytes,7,opt,name=valid_end_time,json=validEndTime,proto3" json:"valid_end_time,omitempty"` + UsageTime string `protobuf:"bytes,8,opt,name=usage_time,json=usageTime,proto3" json:"usage_time,omitempty"` + DiscardTime string `protobuf:"bytes,9,opt,name=discard_time,json=discardTime,proto3" json:"discard_time,omitempty"` +} + +func (x *NewMarketOrderRes_Data) Reset() { + *x = NewMarketOrderRes_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_transfer_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewMarketOrderRes_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewMarketOrderRes_Data) ProtoMessage() {} + +func (x *NewMarketOrderRes_Data) ProtoReflect() protoreflect.Message { + mi := &file_transfer_proto_msgTypes[25] + 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 NewMarketOrderRes_Data.ProtoReflect.Descriptor instead. +func (*NewMarketOrderRes_Data) Descriptor() ([]byte, []int) { + return file_transfer_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *NewMarketOrderRes_Data) GetOutBizNo() string { + if x != nil { + return x.OutBizNo + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetTradeNo() string { + if x != nil { + return x.TradeNo + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *NewMarketOrderRes_Data) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetValidBeginTime() string { + if x != nil { + return x.ValidBeginTime + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetValidEndTime() string { + if x != nil { + return x.ValidEndTime + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetUsageTime() string { + if x != nil { + return x.UsageTime + } + return "" +} + +func (x *NewMarketOrderRes_Data) GetDiscardTime() string { + if x != nil { + return x.DiscardTime + } + return "" +} + type RsCouponGrantRes_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1613,7 +2047,7 @@ type RsCouponGrantRes_Data struct { func (x *RsCouponGrantRes_Data) Reset() { *x = RsCouponGrantRes_Data{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[20] + mi := &file_transfer_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1626,7 +2060,7 @@ func (x *RsCouponGrantRes_Data) String() string { func (*RsCouponGrantRes_Data) ProtoMessage() {} func (x *RsCouponGrantRes_Data) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[20] + mi := &file_transfer_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1639,7 +2073,7 @@ func (x *RsCouponGrantRes_Data) ProtoReflect() protoreflect.Message { // Deprecated: Use RsCouponGrantRes_Data.ProtoReflect.Descriptor instead. func (*RsCouponGrantRes_Data) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{3, 0} + return file_transfer_proto_rawDescGZIP(), []int{8, 0} } func (x *RsCouponGrantRes_Data) GetSipOrderNo() string { @@ -1679,7 +2113,7 @@ type RsCouponGrantRes_Data_VoucherInfo struct { func (x *RsCouponGrantRes_Data_VoucherInfo) Reset() { *x = RsCouponGrantRes_Data_VoucherInfo{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[21] + mi := &file_transfer_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1692,7 +2126,7 @@ func (x *RsCouponGrantRes_Data_VoucherInfo) String() string { func (*RsCouponGrantRes_Data_VoucherInfo) ProtoMessage() {} func (x *RsCouponGrantRes_Data_VoucherInfo) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[21] + mi := &file_transfer_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1705,7 +2139,7 @@ func (x *RsCouponGrantRes_Data_VoucherInfo) ProtoReflect() protoreflect.Message // Deprecated: Use RsCouponGrantRes_Data_VoucherInfo.ProtoReflect.Descriptor instead. func (*RsCouponGrantRes_Data_VoucherInfo) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{3, 0, 0} + return file_transfer_proto_rawDescGZIP(), []int{8, 0, 0} } func (x *RsCouponGrantRes_Data_VoucherInfo) GetVoucherCode() string { @@ -1763,7 +2197,7 @@ type MarketQueryRes_Data struct { func (x *MarketQueryRes_Data) Reset() { *x = MarketQueryRes_Data{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[22] + mi := &file_transfer_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1776,7 +2210,7 @@ func (x *MarketQueryRes_Data) String() string { func (*MarketQueryRes_Data) ProtoMessage() {} func (x *MarketQueryRes_Data) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[22] + mi := &file_transfer_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1789,7 +2223,7 @@ func (x *MarketQueryRes_Data) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketQueryRes_Data.ProtoReflect.Descriptor instead. func (*MarketQueryRes_Data) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{4, 0} + return file_transfer_proto_rawDescGZIP(), []int{9, 0} } func (x *MarketQueryRes_Data) GetVoucherId() string { @@ -1827,7 +2261,7 @@ type MarketKeyDiscardRes_Data struct { func (x *MarketKeyDiscardRes_Data) Reset() { *x = MarketKeyDiscardRes_Data{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[23] + mi := &file_transfer_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1840,7 +2274,7 @@ func (x *MarketKeyDiscardRes_Data) String() string { func (*MarketKeyDiscardRes_Data) ProtoMessage() {} func (x *MarketKeyDiscardRes_Data) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[23] + mi := &file_transfer_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1853,7 +2287,7 @@ func (x *MarketKeyDiscardRes_Data) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeyDiscardRes_Data.ProtoReflect.Descriptor instead. func (*MarketKeyDiscardRes_Data) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{6, 0} + return file_transfer_proto_rawDescGZIP(), []int{11, 0} } func (x *MarketKeyDiscardRes_Data) GetVoucherId() string { @@ -1900,7 +2334,7 @@ type MarketKeySendRes_Data struct { func (x *MarketKeySendRes_Data) Reset() { *x = MarketKeySendRes_Data{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[24] + mi := &file_transfer_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1913,7 +2347,7 @@ func (x *MarketKeySendRes_Data) String() string { func (*MarketKeySendRes_Data) ProtoMessage() {} func (x *MarketKeySendRes_Data) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[24] + mi := &file_transfer_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1926,7 +2360,7 @@ func (x *MarketKeySendRes_Data) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketKeySendRes_Data.ProtoReflect.Descriptor instead. func (*MarketKeySendRes_Data) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{8, 0} + return file_transfer_proto_rawDescGZIP(), []int{13, 0} } func (x *MarketKeySendRes_Data) GetVoucherId() string { @@ -1985,7 +2419,7 @@ type ZltxRechargeProductRes_Product struct { func (x *ZltxRechargeProductRes_Product) Reset() { *x = ZltxRechargeProductRes_Product{} if protoimpl.UnsafeEnabled { - mi := &file_transfer_proto_msgTypes[25] + mi := &file_transfer_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1998,7 +2432,7 @@ func (x *ZltxRechargeProductRes_Product) String() string { func (*ZltxRechargeProductRes_Product) ProtoMessage() {} func (x *ZltxRechargeProductRes_Product) ProtoReflect() protoreflect.Message { - mi := &file_transfer_proto_msgTypes[25] + mi := &file_transfer_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2011,7 +2445,7 @@ func (x *ZltxRechargeProductRes_Product) ProtoReflect() protoreflect.Message { // Deprecated: Use ZltxRechargeProductRes_Product.ProtoReflect.Descriptor instead. func (*ZltxRechargeProductRes_Product) Descriptor() ([]byte, []int) { - return file_transfer_proto_rawDescGZIP(), []int{10, 0} + return file_transfer_proto_rawDescGZIP(), []int{15, 0} } func (x *ZltxRechargeProductRes_Product) GetProductId() int64 { @@ -2056,324 +2490,390 @@ var file_transfer_proto_rawDesc = []byte{ 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x52, 0x73, 0x43, 0x6f, 0x75, - 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x76, - 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, - 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x4e, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x5f, 0x62, 0x69, 0x7a, 0x5f, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6f, 0x75, 0x74, 0x42, 0x69, 0x7a, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x69, 0x67, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, - 0xff, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0xef, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x70, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, - 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x6e, 0x64, - 0x6f, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x4d, - 0x0a, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, - 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xd1, 0x01, - 0x0a, 0x0b, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, - 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, - 0x72, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x75, - 0x63, 0x68, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x71, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x71, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, - 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, - 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, - 0x67, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, - 0x06, 0x6d, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, - 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, - 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, - 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, - 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, - 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x83, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, - 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x72, 0x65, 0x71, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x65, 0x72, 0x69, 0x61, - 0x6c, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, - 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xcc, 0x01, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x55, 0x72, - 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, - 0x72, 0x53, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, - 0x72, 0x5f, 0x65, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, - 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x45, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x10, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, + 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x65, 0x0a, 0x13, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, - 0x71, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, - 0x70, 0x6f, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x6e, 0x75, - 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x16, 0x5a, 0x6c, 0x74, 0x78, 0x52, - 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x44, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, - 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x73, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, - 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x43, 0x0a, 0x13, 0x5a, 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x77, 0x0a, 0x0f, 0x5a, 0x6c, - 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, - 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x4e, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x72, - 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, - 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x7d, 0x0a, 0x15, 0x5a, 0x6c, 0x74, - 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, - 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x5a, 0x6c, 0x74, - 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x4e, 0x6f, 0x22, 0xbc, 0x02, 0x0a, 0x10, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, - 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, - 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, - 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x22, 0x81, 0x01, 0x0a, 0x19, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, + 0x70, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x7a, 0x5f, + 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x69, 0x7a, + 0x4e, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x6e, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x5b, 0x0a, + 0x13, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x11, 0x4e, 0x65, + 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, + 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x69, + 0x7a, 0x5f, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, + 0x69, 0x7a, 0x4e, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x6e, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, + 0x81, 0x01, 0x0a, 0x11, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x7a, 0x5f, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x69, 0x7a, 0x4e, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x11, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x7a, 0x5f, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x69, 0x7a, 0x4e, 0x6f, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, + 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, + 0x6e, 0x64, 0x6f, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, + 0x6e, 0x64, 0x6f, 0x72, 0x4e, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x5f, 0x62, 0x69, 0x7a, 0x5f, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x75, 0x74, 0x42, 0x69, 0x7a, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0xff, + 0x03, 0x0a, 0x10, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xef, + 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x70, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65, 0x6e, 0x64, 0x6f, + 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x4d, 0x0a, + 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, + 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xd1, 0x01, 0x0a, + 0x0b, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x75, 0x63, + 0x68, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, + 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0xe0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x6f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, + 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, + 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, + 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x06, + 0x6d, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, + 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, + 0x6c, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, + 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x83, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, + 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, + 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, + 0x71, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xcc, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, + 0x53, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, + 0x5f, 0x65, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, + 0x75, 0x63, 0x68, 0x65, 0x72, 0x45, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, + 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, + 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x71, + 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x70, + 0x6f, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x73, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x6e, 0x75, 0x6d, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x12, + 0x19, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x9c, 0x02, 0x0a, 0x16, 0x5a, + 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x43, 0x0a, 0x13, 0x5a, 0x6c, 0x74, + 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x77, + 0x0a, 0x0f, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x19, 0x5a, 0x6c, 0x74, 0x78, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x5a, 0x6c, 0x74, 0x78, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x7d, 0x0a, + 0x15, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x89, 0x01, 0x0a, + 0x15, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, + 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0xbc, 0x02, 0x0a, 0x10, 0x5a, 0x6c, 0x74, + 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, + 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0x81, 0x01, 0x0a, 0x19, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, - 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0xd2, 0x02, 0x0a, 0x14, 0x5a, 0x6c, 0x74, 0x78, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x72, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, - 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x32, 0xa0, 0x07, 0x0a, - 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x11, 0x7a, 0x6c, 0x74, - 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1e, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x16, 0x7a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x23, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, - 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x7a, 0x6c, 0x74, 0x78, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x12, 0x7a, - 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x12, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, - 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, - 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x7a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x6d, 0x73, 0x12, 0x19, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, - 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, - 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x7a, 0x6c, 0x74, - 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x19, + 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x22, 0xd2, 0x02, 0x0a, 0x14, + 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, + 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x32, 0x8a, 0x09, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x49, 0x0a, + 0x11, 0x7a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, + 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x16, 0x7a, 0x6c, 0x74, 0x78, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x23, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, + 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, + 0x7a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x12, + 0x56, 0x0a, 0x12, 0x7a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x7a, 0x6c, 0x74, 0x78, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x12, 0x19, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, + 0x74, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x10, 0x7a, 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x13, 0x7a, 0x6c, 0x74, 0x78, 0x52, 0x65, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, - 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x13, 0x7a, 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x14, 0x2e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x20, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, 0x6c, 0x74, 0x78, 0x52, - 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x7a, 0x6c, 0x74, 0x78, 0x52, 0x73, 0x4d, 0x69, 0x58, 0x75, 0x65, - 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, - 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, - 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x5a, + 0x6c, 0x74, 0x78, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x7a, 0x6c, 0x74, 0x78, 0x52, 0x73, 0x4d, + 0x69, 0x58, 0x75, 0x65, 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, + 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, + 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, + 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x12, 0x50, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x18, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x70, - 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, + 0x65, 0x79, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, + 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x1a, 0x18, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x72, 0x73, + 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x52, - 0x73, 0x43, 0x6f, 0x75, 0x70, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x42, - 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x2e, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, + 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x1b, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1b, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x6e, + 0x65, 0x77, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, + 0x1d, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x42, 0x0c, 0x5a, + 0x0a, 0x2e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2388,71 +2888,84 @@ func file_transfer_proto_rawDescGZIP() []byte { return file_transfer_proto_rawDescData } -var file_transfer_proto_msgTypes = make([]protoimpl.MessageInfo, 26) -var file_transfer_proto_goTypes = []interface{}{ +var file_transfer_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_transfer_proto_goTypes = []any{ (*DefaultRes)(nil), // 0: transfer.DefaultRes (*DefaultReq)(nil), // 1: transfer.DefaultReq - (*RsCouponGrantReq)(nil), // 2: transfer.RsCouponGrantReq - (*RsCouponGrantRes)(nil), // 3: transfer.RsCouponGrantRes - (*MarketQueryRes)(nil), // 4: transfer.MarketQueryRes - (*MarketQueryReq)(nil), // 5: transfer.MarketQueryReq - (*MarketKeyDiscardRes)(nil), // 6: transfer.MarketKeyDiscardRes - (*MarketKeyDiscardReq)(nil), // 7: transfer.MarketKeyDiscardReq - (*MarketKeySendRes)(nil), // 8: transfer.MarketKeySendRes - (*MarketKeySendReq)(nil), // 9: transfer.MarketKeySendReq - (*ZltxRechargeProductRes)(nil), // 10: transfer.ZltxRechargeProductRes - (*ZltxRechargeInfoRes)(nil), // 11: transfer.ZltxRechargeInfoRes - (*ZltxOrderSmsRes)(nil), // 12: transfer.ZltxOrderSmsRes - (*ZltxOrderSmsReq)(nil), // 13: transfer.ZltxOrderSmsReq - (*ZltxOrderCardQueryRes)(nil), // 14: transfer.ZltxOrderCardQueryRes - (*ZltxOrderCardQueryReq)(nil), // 15: transfer.ZltxOrderCardQueryReq - (*ZltxOrderCardReq)(nil), // 16: transfer.ZltxOrderCardReq - (*ZltxOrderRechargeQueryRes)(nil), // 17: transfer.ZltxOrderRechargeQueryRes - (*ZltxOrderRechargeQueryReq)(nil), // 18: transfer.ZltxOrderRechargeQueryReq - (*ZltxOrderRechargeReq)(nil), // 19: transfer.ZltxOrderRechargeReq - (*RsCouponGrantRes_Data)(nil), // 20: transfer.RsCouponGrantRes.Data - (*RsCouponGrantRes_Data_VoucherInfo)(nil), // 21: transfer.RsCouponGrantRes.Data.VoucherInfo - (*MarketQueryRes_Data)(nil), // 22: transfer.MarketQueryRes.Data - (*MarketKeyDiscardRes_Data)(nil), // 23: transfer.MarketKeyDiscardRes.Data - (*MarketKeySendRes_Data)(nil), // 24: transfer.MarketKeySendRes.Data - (*ZltxRechargeProductRes_Product)(nil), // 25: transfer.ZltxRechargeProductRes.Product + (*NewMarketDiscardReq)(nil), // 2: transfer.NewMarketDiscardReq + (*NewMarketDiscardRes)(nil), // 3: transfer.NewMarketDiscardRes + (*NewMarketQueryReq)(nil), // 4: transfer.NewMarketQueryReq + (*NewMarketOrderReq)(nil), // 5: transfer.NewMarketOrderReq + (*NewMarketOrderRes)(nil), // 6: transfer.NewMarketOrderRes + (*RsCouponGrantReq)(nil), // 7: transfer.RsCouponGrantReq + (*RsCouponGrantRes)(nil), // 8: transfer.RsCouponGrantRes + (*MarketQueryRes)(nil), // 9: transfer.MarketQueryRes + (*MarketQueryReq)(nil), // 10: transfer.MarketQueryReq + (*MarketKeyDiscardRes)(nil), // 11: transfer.MarketKeyDiscardRes + (*MarketKeyDiscardReq)(nil), // 12: transfer.MarketKeyDiscardReq + (*MarketKeySendRes)(nil), // 13: transfer.MarketKeySendRes + (*MarketKeySendReq)(nil), // 14: transfer.MarketKeySendReq + (*ZltxRechargeProductRes)(nil), // 15: transfer.ZltxRechargeProductRes + (*ZltxRechargeInfoRes)(nil), // 16: transfer.ZltxRechargeInfoRes + (*ZltxOrderSmsRes)(nil), // 17: transfer.ZltxOrderSmsRes + (*ZltxOrderSmsReq)(nil), // 18: transfer.ZltxOrderSmsReq + (*ZltxOrderCardQueryRes)(nil), // 19: transfer.ZltxOrderCardQueryRes + (*ZltxOrderCardQueryReq)(nil), // 20: transfer.ZltxOrderCardQueryReq + (*ZltxOrderCardReq)(nil), // 21: transfer.ZltxOrderCardReq + (*ZltxOrderRechargeQueryRes)(nil), // 22: transfer.ZltxOrderRechargeQueryRes + (*ZltxOrderRechargeQueryReq)(nil), // 23: transfer.ZltxOrderRechargeQueryReq + (*ZltxOrderRechargeReq)(nil), // 24: transfer.ZltxOrderRechargeReq + (*NewMarketOrderRes_Data)(nil), // 25: transfer.NewMarketOrderRes.Data + (*RsCouponGrantRes_Data)(nil), // 26: transfer.RsCouponGrantRes.Data + (*RsCouponGrantRes_Data_VoucherInfo)(nil), // 27: transfer.RsCouponGrantRes.Data.VoucherInfo + (*MarketQueryRes_Data)(nil), // 28: transfer.MarketQueryRes.Data + (*MarketKeyDiscardRes_Data)(nil), // 29: transfer.MarketKeyDiscardRes.Data + (*MarketKeySendRes_Data)(nil), // 30: transfer.MarketKeySendRes.Data + (*ZltxRechargeProductRes_Product)(nil), // 31: transfer.ZltxRechargeProductRes.Product } var file_transfer_proto_depIdxs = []int32{ - 20, // 0: transfer.RsCouponGrantRes.data:type_name -> transfer.RsCouponGrantRes.Data - 22, // 1: transfer.MarketQueryRes.data:type_name -> transfer.MarketQueryRes.Data - 23, // 2: transfer.MarketKeyDiscardRes.data:type_name -> transfer.MarketKeyDiscardRes.Data - 24, // 3: transfer.MarketKeySendRes.data:type_name -> transfer.MarketKeySendRes.Data - 25, // 4: transfer.ZltxRechargeProductRes.products:type_name -> transfer.ZltxRechargeProductRes.Product - 21, // 5: transfer.RsCouponGrantRes.Data.voucherInfo:type_name -> transfer.RsCouponGrantRes.Data.VoucherInfo - 19, // 6: transfer.Transfer.zltxOrderRecharge:input_type -> transfer.ZltxOrderRechargeReq - 18, // 7: transfer.Transfer.zltxOrderRechargeQuery:input_type -> transfer.ZltxOrderRechargeQueryReq - 16, // 8: transfer.Transfer.zltxOrderCard:input_type -> transfer.ZltxOrderCardReq - 15, // 9: transfer.Transfer.zltxOrderCardQuery:input_type -> transfer.ZltxOrderCardQueryReq - 13, // 10: transfer.Transfer.zltxOrderSms:input_type -> transfer.ZltxOrderSmsReq - 1, // 11: transfer.Transfer.zltxRechargeInfo:input_type -> transfer.DefaultReq - 1, // 12: transfer.Transfer.zltxRechargeProduct:input_type -> transfer.DefaultReq - 2, // 13: transfer.Transfer.zltxRsMiXue:input_type -> transfer.RsCouponGrantReq - 9, // 14: transfer.Transfer.marketKeySend:input_type -> transfer.MarketKeySendReq - 7, // 15: transfer.Transfer.marketKeyDiscard:input_type -> transfer.MarketKeyDiscardReq - 5, // 16: transfer.Transfer.marketQuery:input_type -> transfer.MarketQueryReq - 2, // 17: transfer.Transfer.rsCouponGrant:input_type -> transfer.RsCouponGrantReq - 0, // 18: transfer.Transfer.zltxOrderRecharge:output_type -> transfer.DefaultRes - 17, // 19: transfer.Transfer.zltxOrderRechargeQuery:output_type -> transfer.ZltxOrderRechargeQueryRes - 0, // 20: transfer.Transfer.zltxOrderCard:output_type -> transfer.DefaultRes - 14, // 21: transfer.Transfer.zltxOrderCardQuery:output_type -> transfer.ZltxOrderCardQueryRes - 12, // 22: transfer.Transfer.zltxOrderSms:output_type -> transfer.ZltxOrderSmsRes - 11, // 23: transfer.Transfer.zltxRechargeInfo:output_type -> transfer.ZltxRechargeInfoRes - 10, // 24: transfer.Transfer.zltxRechargeProduct:output_type -> transfer.ZltxRechargeProductRes - 3, // 25: transfer.Transfer.zltxRsMiXue:output_type -> transfer.RsCouponGrantRes - 8, // 26: transfer.Transfer.marketKeySend:output_type -> transfer.MarketKeySendRes - 6, // 27: transfer.Transfer.marketKeyDiscard:output_type -> transfer.MarketKeyDiscardRes - 4, // 28: transfer.Transfer.marketQuery:output_type -> transfer.MarketQueryRes - 3, // 29: transfer.Transfer.rsCouponGrant:output_type -> transfer.RsCouponGrantRes - 18, // [18:30] is the sub-list for method output_type - 6, // [6:18] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 25, // 0: transfer.NewMarketOrderRes.data:type_name -> transfer.NewMarketOrderRes.Data + 26, // 1: transfer.RsCouponGrantRes.data:type_name -> transfer.RsCouponGrantRes.Data + 28, // 2: transfer.MarketQueryRes.data:type_name -> transfer.MarketQueryRes.Data + 29, // 3: transfer.MarketKeyDiscardRes.data:type_name -> transfer.MarketKeyDiscardRes.Data + 30, // 4: transfer.MarketKeySendRes.data:type_name -> transfer.MarketKeySendRes.Data + 31, // 5: transfer.ZltxRechargeProductRes.products:type_name -> transfer.ZltxRechargeProductRes.Product + 27, // 6: transfer.RsCouponGrantRes.Data.voucherInfo:type_name -> transfer.RsCouponGrantRes.Data.VoucherInfo + 24, // 7: transfer.Transfer.zltxOrderRecharge:input_type -> transfer.ZltxOrderRechargeReq + 23, // 8: transfer.Transfer.zltxOrderRechargeQuery:input_type -> transfer.ZltxOrderRechargeQueryReq + 21, // 9: transfer.Transfer.zltxOrderCard:input_type -> transfer.ZltxOrderCardReq + 20, // 10: transfer.Transfer.zltxOrderCardQuery:input_type -> transfer.ZltxOrderCardQueryReq + 18, // 11: transfer.Transfer.zltxOrderSms:input_type -> transfer.ZltxOrderSmsReq + 1, // 12: transfer.Transfer.zltxRechargeInfo:input_type -> transfer.DefaultReq + 1, // 13: transfer.Transfer.zltxRechargeProduct:input_type -> transfer.DefaultReq + 7, // 14: transfer.Transfer.zltxRsMiXue:input_type -> transfer.RsCouponGrantReq + 14, // 15: transfer.Transfer.marketKeySend:input_type -> transfer.MarketKeySendReq + 12, // 16: transfer.Transfer.marketKeyDiscard:input_type -> transfer.MarketKeyDiscardReq + 10, // 17: transfer.Transfer.marketQuery:input_type -> transfer.MarketQueryReq + 7, // 18: transfer.Transfer.rsCouponGrant:input_type -> transfer.RsCouponGrantReq + 5, // 19: transfer.Transfer.newMarketOrder:input_type -> transfer.NewMarketOrderReq + 4, // 20: transfer.Transfer.newMarketQuery:input_type -> transfer.NewMarketQueryReq + 2, // 21: transfer.Transfer.newMarketDiscard:input_type -> transfer.NewMarketDiscardReq + 0, // 22: transfer.Transfer.zltxOrderRecharge:output_type -> transfer.DefaultRes + 22, // 23: transfer.Transfer.zltxOrderRechargeQuery:output_type -> transfer.ZltxOrderRechargeQueryRes + 0, // 24: transfer.Transfer.zltxOrderCard:output_type -> transfer.DefaultRes + 19, // 25: transfer.Transfer.zltxOrderCardQuery:output_type -> transfer.ZltxOrderCardQueryRes + 17, // 26: transfer.Transfer.zltxOrderSms:output_type -> transfer.ZltxOrderSmsRes + 16, // 27: transfer.Transfer.zltxRechargeInfo:output_type -> transfer.ZltxRechargeInfoRes + 15, // 28: transfer.Transfer.zltxRechargeProduct:output_type -> transfer.ZltxRechargeProductRes + 8, // 29: transfer.Transfer.zltxRsMiXue:output_type -> transfer.RsCouponGrantRes + 13, // 30: transfer.Transfer.marketKeySend:output_type -> transfer.MarketKeySendRes + 11, // 31: transfer.Transfer.marketKeyDiscard:output_type -> transfer.MarketKeyDiscardRes + 9, // 32: transfer.Transfer.marketQuery:output_type -> transfer.MarketQueryRes + 8, // 33: transfer.Transfer.rsCouponGrant:output_type -> transfer.RsCouponGrantRes + 6, // 34: transfer.Transfer.newMarketOrder:output_type -> transfer.NewMarketOrderRes + 6, // 35: transfer.Transfer.newMarketQuery:output_type -> transfer.NewMarketOrderRes + 3, // 36: transfer.Transfer.newMarketDiscard:output_type -> transfer.NewMarketDiscardRes + 22, // [22:37] is the sub-list for method output_type + 7, // [7:22] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_transfer_proto_init() } @@ -2461,7 +2974,7 @@ func file_transfer_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_transfer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*DefaultRes); i { case 0: return &v.state @@ -2473,7 +2986,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*DefaultReq); i { case 0: return &v.state @@ -2485,7 +2998,67 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[2].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketDiscardReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[3].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketDiscardRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[4].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketQueryReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[5].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketOrderReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[6].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketOrderRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*RsCouponGrantReq); i { case 0: return &v.state @@ -2497,7 +3070,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*RsCouponGrantRes); i { case 0: return &v.state @@ -2509,7 +3082,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*MarketQueryRes); i { case 0: return &v.state @@ -2521,7 +3094,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*MarketQueryReq); i { case 0: return &v.state @@ -2533,7 +3106,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*MarketKeyDiscardRes); i { case 0: return &v.state @@ -2545,7 +3118,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*MarketKeyDiscardReq); i { case 0: return &v.state @@ -2557,7 +3130,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*MarketKeySendRes); i { case 0: return &v.state @@ -2569,7 +3142,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*MarketKeySendReq); i { case 0: return &v.state @@ -2581,7 +3154,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*ZltxRechargeProductRes); i { case 0: return &v.state @@ -2593,7 +3166,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*ZltxRechargeInfoRes); i { case 0: return &v.state @@ -2605,7 +3178,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderSmsRes); i { case 0: return &v.state @@ -2617,7 +3190,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderSmsReq); i { case 0: return &v.state @@ -2629,7 +3202,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderCardQueryRes); i { case 0: return &v.state @@ -2641,7 +3214,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderCardQueryReq); i { case 0: return &v.state @@ -2653,7 +3226,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderCardReq); i { case 0: return &v.state @@ -2665,7 +3238,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderRechargeQueryRes); i { case 0: return &v.state @@ -2677,7 +3250,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderRechargeQueryReq); i { case 0: return &v.state @@ -2689,7 +3262,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*ZltxOrderRechargeReq); i { case 0: return &v.state @@ -2701,7 +3274,19 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[25].Exporter = func(v any, i int) any { + switch v := v.(*NewMarketOrderRes_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_transfer_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*RsCouponGrantRes_Data); i { case 0: return &v.state @@ -2713,7 +3298,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*RsCouponGrantRes_Data_VoucherInfo); i { case 0: return &v.state @@ -2725,7 +3310,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[28].Exporter = func(v any, i int) any { switch v := v.(*MarketQueryRes_Data); i { case 0: return &v.state @@ -2737,7 +3322,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[29].Exporter = func(v any, i int) any { switch v := v.(*MarketKeyDiscardRes_Data); i { case 0: return &v.state @@ -2749,7 +3334,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[30].Exporter = func(v any, i int) any { switch v := v.(*MarketKeySendRes_Data); i { case 0: return &v.state @@ -2761,7 +3346,7 @@ func file_transfer_proto_init() { return nil } } - file_transfer_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_transfer_proto_msgTypes[31].Exporter = func(v any, i int) any { switch v := v.(*ZltxRechargeProductRes_Product); i { case 0: return &v.state @@ -2780,7 +3365,7 @@ func file_transfer_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_transfer_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 32, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/transfer/transfer_grpc.pb.go b/rpc/transfer/transfer_grpc.pb.go index 7009f98..8267c7d 100644 --- a/rpc/transfer/transfer_grpc.pb.go +++ b/rpc/transfer/transfer_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc v3.6.1 +// - protoc-gen-go-grpc v1.4.0 +// - protoc (unknown) // source: transfer.proto package transfer @@ -15,8 +15,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.62.0 or later. +const _ = grpc.SupportPackageIsVersion8 const ( Transfer_ZltxOrderRecharge_FullMethodName = "/transfer.Transfer/zltxOrderRecharge" @@ -31,6 +31,9 @@ const ( Transfer_MarketKeyDiscard_FullMethodName = "/transfer.Transfer/marketKeyDiscard" Transfer_MarketQuery_FullMethodName = "/transfer.Transfer/marketQuery" Transfer_RsCouponGrant_FullMethodName = "/transfer.Transfer/rsCouponGrant" + Transfer_NewMarketOrder_FullMethodName = "/transfer.Transfer/newMarketOrder" + Transfer_NewMarketQuery_FullMethodName = "/transfer.Transfer/newMarketQuery" + Transfer_NewMarketDiscard_FullMethodName = "/transfer.Transfer/newMarketDiscard" ) // TransferClient is the client API for Transfer service. @@ -49,6 +52,9 @@ type TransferClient interface { MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error) MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error) RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) + NewMarketOrder(ctx context.Context, in *NewMarketOrderReq, opts ...grpc.CallOption) (*NewMarketOrderRes, error) + NewMarketQuery(ctx context.Context, in *NewMarketQueryReq, opts ...grpc.CallOption) (*NewMarketOrderRes, error) + NewMarketDiscard(ctx context.Context, in *NewMarketDiscardReq, opts ...grpc.CallOption) (*NewMarketDiscardRes, error) } type transferClient struct { @@ -60,8 +66,9 @@ func NewTransferClient(cc grpc.ClientConnInterface) TransferClient { } func (c *transferClient) ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRechargeReq, opts ...grpc.CallOption) (*DefaultRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DefaultRes) - err := c.cc.Invoke(ctx, Transfer_ZltxOrderRecharge_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxOrderRecharge_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -69,8 +76,9 @@ func (c *transferClient) ZltxOrderRecharge(ctx context.Context, in *ZltxOrderRec } func (c *transferClient) ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrderRechargeQueryReq, opts ...grpc.CallOption) (*ZltxOrderRechargeQueryRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ZltxOrderRechargeQueryRes) - err := c.cc.Invoke(ctx, Transfer_ZltxOrderRechargeQuery_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxOrderRechargeQuery_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -78,8 +86,9 @@ func (c *transferClient) ZltxOrderRechargeQuery(ctx context.Context, in *ZltxOrd } func (c *transferClient) ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq, opts ...grpc.CallOption) (*DefaultRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DefaultRes) - err := c.cc.Invoke(ctx, Transfer_ZltxOrderCard_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxOrderCard_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -87,8 +96,9 @@ func (c *transferClient) ZltxOrderCard(ctx context.Context, in *ZltxOrderCardReq } func (c *transferClient) ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCardQueryReq, opts ...grpc.CallOption) (*ZltxOrderCardQueryRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ZltxOrderCardQueryRes) - err := c.cc.Invoke(ctx, Transfer_ZltxOrderCardQuery_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxOrderCardQuery_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -96,8 +106,9 @@ func (c *transferClient) ZltxOrderCardQuery(ctx context.Context, in *ZltxOrderCa } func (c *transferClient) ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, opts ...grpc.CallOption) (*ZltxOrderSmsRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ZltxOrderSmsRes) - err := c.cc.Invoke(ctx, Transfer_ZltxOrderSms_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxOrderSms_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -105,8 +116,9 @@ func (c *transferClient) ZltxOrderSms(ctx context.Context, in *ZltxOrderSmsReq, } func (c *transferClient) ZltxRechargeInfo(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeInfoRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ZltxRechargeInfoRes) - err := c.cc.Invoke(ctx, Transfer_ZltxRechargeInfo_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxRechargeInfo_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -114,8 +126,9 @@ func (c *transferClient) ZltxRechargeInfo(ctx context.Context, in *DefaultReq, o } func (c *transferClient) ZltxRechargeProduct(ctx context.Context, in *DefaultReq, opts ...grpc.CallOption) (*ZltxRechargeProductRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ZltxRechargeProductRes) - err := c.cc.Invoke(ctx, Transfer_ZltxRechargeProduct_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxRechargeProduct_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -123,8 +136,9 @@ func (c *transferClient) ZltxRechargeProduct(ctx context.Context, in *DefaultReq } func (c *transferClient) ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RsCouponGrantRes) - err := c.cc.Invoke(ctx, Transfer_ZltxRsMiXue_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_ZltxRsMiXue_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -132,8 +146,9 @@ func (c *transferClient) ZltxRsMiXue(ctx context.Context, in *RsCouponGrantReq, } func (c *transferClient) MarketKeySend(ctx context.Context, in *MarketKeySendReq, opts ...grpc.CallOption) (*MarketKeySendRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MarketKeySendRes) - err := c.cc.Invoke(ctx, Transfer_MarketKeySend_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_MarketKeySend_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -141,8 +156,9 @@ func (c *transferClient) MarketKeySend(ctx context.Context, in *MarketKeySendReq } func (c *transferClient) MarketKeyDiscard(ctx context.Context, in *MarketKeyDiscardReq, opts ...grpc.CallOption) (*MarketKeyDiscardRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MarketKeyDiscardRes) - err := c.cc.Invoke(ctx, Transfer_MarketKeyDiscard_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_MarketKeyDiscard_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -150,8 +166,9 @@ func (c *transferClient) MarketKeyDiscard(ctx context.Context, in *MarketKeyDisc } func (c *transferClient) MarketQuery(ctx context.Context, in *MarketQueryReq, opts ...grpc.CallOption) (*MarketQueryRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(MarketQueryRes) - err := c.cc.Invoke(ctx, Transfer_MarketQuery_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_MarketQuery_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -159,8 +176,39 @@ func (c *transferClient) MarketQuery(ctx context.Context, in *MarketQueryReq, op } func (c *transferClient) RsCouponGrant(ctx context.Context, in *RsCouponGrantReq, opts ...grpc.CallOption) (*RsCouponGrantRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RsCouponGrantRes) - err := c.cc.Invoke(ctx, Transfer_RsCouponGrant_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, Transfer_RsCouponGrant_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transferClient) NewMarketOrder(ctx context.Context, in *NewMarketOrderReq, opts ...grpc.CallOption) (*NewMarketOrderRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(NewMarketOrderRes) + err := c.cc.Invoke(ctx, Transfer_NewMarketOrder_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transferClient) NewMarketQuery(ctx context.Context, in *NewMarketQueryReq, opts ...grpc.CallOption) (*NewMarketOrderRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(NewMarketOrderRes) + err := c.cc.Invoke(ctx, Transfer_NewMarketQuery_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transferClient) NewMarketDiscard(ctx context.Context, in *NewMarketDiscardReq, opts ...grpc.CallOption) (*NewMarketDiscardRes, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(NewMarketDiscardRes) + err := c.cc.Invoke(ctx, Transfer_NewMarketDiscard_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -183,6 +231,9 @@ type TransferServer interface { MarketKeyDiscard(context.Context, *MarketKeyDiscardReq) (*MarketKeyDiscardRes, error) MarketQuery(context.Context, *MarketQueryReq) (*MarketQueryRes, error) RsCouponGrant(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error) + NewMarketOrder(context.Context, *NewMarketOrderReq) (*NewMarketOrderRes, error) + NewMarketQuery(context.Context, *NewMarketQueryReq) (*NewMarketOrderRes, error) + NewMarketDiscard(context.Context, *NewMarketDiscardReq) (*NewMarketDiscardRes, error) mustEmbedUnimplementedTransferServer() } @@ -226,6 +277,15 @@ func (UnimplementedTransferServer) MarketQuery(context.Context, *MarketQueryReq) func (UnimplementedTransferServer) RsCouponGrant(context.Context, *RsCouponGrantReq) (*RsCouponGrantRes, error) { return nil, status.Errorf(codes.Unimplemented, "method RsCouponGrant not implemented") } +func (UnimplementedTransferServer) NewMarketOrder(context.Context, *NewMarketOrderReq) (*NewMarketOrderRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewMarketOrder not implemented") +} +func (UnimplementedTransferServer) NewMarketQuery(context.Context, *NewMarketQueryReq) (*NewMarketOrderRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewMarketQuery not implemented") +} +func (UnimplementedTransferServer) NewMarketDiscard(context.Context, *NewMarketDiscardReq) (*NewMarketDiscardRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewMarketDiscard not implemented") +} func (UnimplementedTransferServer) mustEmbedUnimplementedTransferServer() {} // UnsafeTransferServer may be embedded to opt out of forward compatibility for this service. @@ -455,6 +515,60 @@ func _Transfer_RsCouponGrant_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Transfer_NewMarketOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewMarketOrderReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransferServer).NewMarketOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Transfer_NewMarketOrder_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransferServer).NewMarketOrder(ctx, req.(*NewMarketOrderReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Transfer_NewMarketQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewMarketQueryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransferServer).NewMarketQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Transfer_NewMarketQuery_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransferServer).NewMarketQuery(ctx, req.(*NewMarketQueryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Transfer_NewMarketDiscard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewMarketDiscardReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransferServer).NewMarketDiscard(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Transfer_NewMarketDiscard_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransferServer).NewMarketDiscard(ctx, req.(*NewMarketDiscardReq)) + } + return interceptor(ctx, in, info, handler) +} + // Transfer_ServiceDesc is the grpc.ServiceDesc for Transfer service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -510,6 +624,18 @@ var Transfer_ServiceDesc = grpc.ServiceDesc{ MethodName: "rsCouponGrant", Handler: _Transfer_RsCouponGrant_Handler, }, + { + MethodName: "newMarketOrder", + Handler: _Transfer_NewMarketOrder_Handler, + }, + { + MethodName: "newMarketQuery", + Handler: _Transfer_NewMarketQuery_Handler, + }, + { + MethodName: "newMarketDiscard", + Handler: _Transfer_NewMarketDiscard_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "transfer.proto", diff --git a/untils/response/code.go b/untils/response/code.go index c667577..6413a9a 100644 --- a/untils/response/code.go +++ b/untils/response/code.go @@ -1,13 +1,15 @@ package response const ( - HTTP_SUCCESS = "000000" - HTTP_AUTH_FAIL = "000101" - HTTP_REUEST_FAIL = "000102" + HTTP_SUCCESS = "000000" + HTTP_AUTH_FAIL = "000101" + HTTP_REUEST_FAIL = "000102" + HTTP_REUEST_NOT_FOUND = "100030" ) var CodeMsg = map[string]string{ - HTTP_SUCCESS: "操作成功", - HTTP_AUTH_FAIL: "验签失败", - HTTP_REUEST_FAIL: "操作失败", + HTTP_SUCCESS: "操作成功", + HTTP_AUTH_FAIL: "验签失败", + HTTP_REUEST_FAIL: "操作失败", + HTTP_REUEST_NOT_FOUND: "订单不存在", }