diff --git a/adaptor/PCM-CORE/api/etc/pcmcore-api.yaml b/adaptor/PCM-CORE/api/etc/pcmcore-api.yaml new file mode 100644 index 00000000..eea3dde5 --- /dev/null +++ b/adaptor/PCM-CORE/api/etc/pcmcore-api.yaml @@ -0,0 +1,19 @@ +Name: slurmcore-api +Host: 0.0.0.0 +Port: 8999 + +#pay success notify order-mq for kq(kafka pub sub) +ScheduleHpcConf: + Brokers: + - 10.101.15.161:9092 + HpcTopic: Schedule-Hpc-Topic + CloudTopic: Schedule-Cloud-Topic + +DB: + DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm + +Redis: + Host: localhost:6379 + +Cache: + - Host: localhost:6379 \ No newline at end of file diff --git a/adaptor/PCM-CORE/api/etc/slurmcore-api.yaml b/adaptor/PCM-CORE/api/etc/slurmcore-api.yaml deleted file mode 100644 index 4fc5daae..00000000 --- a/adaptor/PCM-CORE/api/etc/slurmcore-api.yaml +++ /dev/null @@ -1,4 +0,0 @@ -Name: slurmcore-api -Host: 0.0.0.0 -Port: 8999 -DataSourceName: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/slurm \ No newline at end of file diff --git a/adaptor/PCM-CORE/api/internal/config/config.go b/adaptor/PCM-CORE/api/internal/config/config.go index 8da153d0..d1f71bdc 100644 --- a/adaptor/PCM-CORE/api/internal/config/config.go +++ b/adaptor/PCM-CORE/api/internal/config/config.go @@ -1,7 +1,23 @@ package config -import "github.com/zeromicro/go-zero/rest" +import ( + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/redis" + "github.com/zeromicro/go-zero/rest" +) type Config struct { rest.RestConf + ScheduleHpcConf KqConfig + DB struct { + DataSource string + } + Redis redis.RedisConf + Cache cache.CacheConf +} + +type KqConfig struct { + Brokers []string + HpcTopic string + CloudTopic string } diff --git a/adaptor/PCM-CORE/api/internal/handler/scheduletaskhandler.go b/adaptor/PCM-CORE/api/internal/handler/scheduletaskhandler.go index 49a2de2c..c17ef22d 100644 --- a/adaptor/PCM-CORE/api/internal/handler/scheduletaskhandler.go +++ b/adaptor/PCM-CORE/api/internal/handler/scheduletaskhandler.go @@ -1,6 +1,7 @@ package handler import ( + "PCM/common/tool" "net/http" "PCM/adaptor/PCM-CORE/api/internal/logic" @@ -16,7 +17,9 @@ func scheduleTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { httpx.ErrorCtx(r.Context(), w, err) return } - + // 解析yaml文件 + _, fileHeader, err := r.FormFile("file") + err = tool.Yaml2struct(fileHeader, &req) l := logic.NewScheduleTaskLogic(r.Context(), svcCtx) resp, err := l.ScheduleTask(&req) if err != nil { diff --git a/adaptor/PCM-CORE/api/internal/logic/scheduletasklogic.go b/adaptor/PCM-CORE/api/internal/logic/scheduletasklogic.go index 6655d4f9..99b7d3c5 100644 --- a/adaptor/PCM-CORE/api/internal/logic/scheduletasklogic.go +++ b/adaptor/PCM-CORE/api/internal/logic/scheduletasklogic.go @@ -1,10 +1,14 @@ package logic import ( + "PCM/adaptor/PCM-CORE/model" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" + "PCM/common/constant" "PCM/common/tool" "context" "encoding/json" appv1 "k8s.io/api/apps/v1" + "strconv" "PCM/adaptor/PCM-CORE/api/internal/svc" "PCM/adaptor/PCM-CORE/api/internal/types" @@ -33,11 +37,37 @@ func NewScheduleTaskLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Sche } func (l *ScheduleTaskLogic) ScheduleTask(req *types.ScheduleTaskReq) (resp *types.ScheduleTaskResp, err error) { + task := model.Task{ + Status: "pending", + Description: req.Description, + Name: req.Name, + } switch req.Kind { case "cloud": - cloudTask(req.Metadata) - case "slurm": - SlurmTask(req.Metadata) + task.Type = constant.TASK_TYPE_CLOUD + jsonStr, _ := json.Marshal(req.Metadata) + if err != nil { + return nil, err + } + l.svcCtx.ScheduleCloudClient.Push(string(jsonStr)) + case "hpc": + task.Type = constant.TASK_TYPE_HPC + // 保存作业信息到数据库并获取id + result, err := l.svcCtx.TaskModel.Insert(l.ctx, &task) + if err != nil { + return nil, err + } + id, _ := result.LastInsertId() + l.svcCtx.RedisClient.Set(l.ctx, "taskStatus_"+strconv.FormatInt(id, 10), "pending", 0).Result() + + // 解析结构体并转换成入参 + var submitJobReq *hpccoreclient.SubmitJobReq + tool.Convert(req.Metadata, &submitJobReq) + submitJobReq.TaskId = id + byteArray, _ := json.Marshal(submitJobReq) + l.svcCtx.ScheduleHpcClient.Push(string(byteArray)) + case "ai": + task.Type = constant.TASK_TYPE_AI } return resp, err @@ -50,8 +80,3 @@ func cloudTask(metadata interface{}) { json.Unmarshal(jsonStr, &deployment) tool.HttpPost("localhost:8082/api/v1/deployments/create", deployment) } - -func SlurmTask(metadata interface{}) { - jsonStr, _ := json.Marshal(metadata) - tool.HttpPost("localhost:8899/submitJob", jsonStr) -} diff --git a/adaptor/PCM-CORE/api/internal/svc/servicecontext.go b/adaptor/PCM-CORE/api/internal/svc/servicecontext.go index 27b57d71..b1d461c0 100644 --- a/adaptor/PCM-CORE/api/internal/svc/servicecontext.go +++ b/adaptor/PCM-CORE/api/internal/svc/servicecontext.go @@ -2,14 +2,29 @@ package svc import ( "PCM/adaptor/PCM-CORE/api/internal/config" + "PCM/adaptor/PCM-CORE/model" + "github.com/go-redis/redis/v8" + "github.com/zeromicro/go-queue/kq" + "github.com/zeromicro/go-zero/core/stores/sqlx" ) type ServiceContext struct { - Config config.Config + Config config.Config + ScheduleHpcClient *kq.Pusher + RedisClient *redis.Client + ScheduleCloudClient *kq.Pusher + TaskModel model.TaskModel } func NewServiceContext(c config.Config) *ServiceContext { + sqlConn := sqlx.NewMysql(c.DB.DataSource) return &ServiceContext{ Config: c, + RedisClient: redis.NewClient(&redis.Options{ + Addr: c.Redis.Host, + }), + TaskModel: model.NewTaskModel(sqlConn, c.Cache), + ScheduleHpcClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.HpcTopic), + ScheduleCloudClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.CloudTopic), } } diff --git a/adaptor/PCM-CORE/api/internal/types/types.go b/adaptor/PCM-CORE/api/internal/types/types.go index daad7afc..8d1a3ade 100644 --- a/adaptor/PCM-CORE/api/internal/types/types.go +++ b/adaptor/PCM-CORE/api/internal/types/types.go @@ -2,9 +2,11 @@ package types type ScheduleTaskReq struct { - Operate string `yaml:"operate"` - Kind string `yaml:"kind"` - Metadata interface{} `yaml:"metadata"` + Operate string `yaml:"operate"` + Kind string `yaml:"kind"` + Name string `yaml:"name"` + Description string `yaml:"description"` + Metadata interface{} `yaml:"metadata"` } type ScheduleTaskResp struct { diff --git a/adaptor/PCM-CORE/api/pcm-core.api b/adaptor/PCM-CORE/api/pcm-core.api index 42162824..b2d886ff 100644 --- a/adaptor/PCM-CORE/api/pcm-core.api +++ b/adaptor/PCM-CORE/api/pcm-core.api @@ -9,9 +9,11 @@ info( type ( scheduleTaskReq { - Operate string `yaml:"operate"` - Kind string `yaml:"kind"` - Metadata interface{} `yaml:"metadata"` + Operate string `yaml:"operate"` + Kind string `yaml:"kind"` + Name string `yaml:"name"` + Description string `yaml:"description"` + Metadata interface{} `yaml:"metadata"` } scheduleTaskResp { Code int32 `json:"code"` diff --git a/adaptor/PCM-CORE/api/slurmcore.go b/adaptor/PCM-CORE/api/pcmcore.go similarity index 84% rename from adaptor/PCM-CORE/api/slurmcore.go rename to adaptor/PCM-CORE/api/pcmcore.go index 601fef03..deedb007 100644 --- a/adaptor/PCM-CORE/api/slurmcore.go +++ b/adaptor/PCM-CORE/api/pcmcore.go @@ -12,7 +12,7 @@ import ( "github.com/zeromicro/go-zero/rest" ) -var configFile = flag.String("f", "adaptor/PCM-CORE/api/etc/slurmcore-api.yaml", "the config file") +var configFile = flag.String("f", "adaptor/PCM-CORE/api/etc/pcmcore-api.yaml", "the config file") func main() { flag.Parse() diff --git a/adaptor/PCM-CORE/model/dictmodel.go b/adaptor/PCM-CORE/model/dictmodel.go new file mode 100644 index 00000000..b65256ca --- /dev/null +++ b/adaptor/PCM-CORE/model/dictmodel.go @@ -0,0 +1,27 @@ +package model + +import ( + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) + +var _ DictModel = (*customDictModel)(nil) + +type ( + // DictModel is an interface to be customized, add more methods here, + // and implement the added methods in customDictModel. + DictModel interface { + dictModel + } + + customDictModel struct { + *defaultDictModel + } +) + +// NewDictModel returns a model for the database table. +func NewDictModel(conn sqlx.SqlConn, c cache.CacheConf) DictModel { + return &customDictModel{ + defaultDictModel: newDictModel(conn, c), + } +} diff --git a/adaptor/PCM-CORE/model/dictmodel_gen.go b/adaptor/PCM-CORE/model/dictmodel_gen.go new file mode 100644 index 00000000..64da983f --- /dev/null +++ b/adaptor/PCM-CORE/model/dictmodel_gen.go @@ -0,0 +1,117 @@ +// Code generated by goctl. DO NOT EDIT. + +package model + +import ( + "context" + "database/sql" + "fmt" + "strings" + + "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 ( + dictFieldNames = builder.RawFieldNames(&Dict{}) + dictRows = strings.Join(dictFieldNames, ",") + dictRowsExpectAutoSet = strings.Join(stringx.Remove(dictFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + dictRowsWithPlaceHolder = strings.Join(stringx.Remove(dictFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" + + cachePcmDictIdPrefix = "cache:pcm:dict:id:" +) + +type ( + dictModel interface { + Insert(ctx context.Context, data *Dict) (sql.Result, error) + FindOne(ctx context.Context, id int64) (*Dict, error) + Update(ctx context.Context, data *Dict) error + Delete(ctx context.Context, id int64) error + } + + defaultDictModel struct { + sqlc.CachedConn + table string + } + + Dict struct { + Id int64 `db:"id"` // id + DictName string `db:"dict_name"` // 字典名称 + DictCode string `db:"dict_code"` // 字典编号 + DictValue string `db:"dict_value"` // 字典值 + Source string `db:"source"` // 来源 + Description sql.NullString `db:"description"` // 描述 + CreatedBy sql.NullInt64 `db:"created_by"` // 创建人 + CreatedTime sql.NullTime `db:"created_time"` // 创建时间 + UpdatedBy sql.NullInt64 `db:"updated_by"` // 更新人 + UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 + DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) + } +) + +func newDictModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultDictModel { + return &defaultDictModel{ + CachedConn: sqlc.NewConn(conn, c), + table: "`dict`", + } +} + +func (m *defaultDictModel) Delete(ctx context.Context, id int64) error { + pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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) + }, pcmDictIdKey) + return err +} + +func (m *defaultDictModel) FindOne(ctx context.Context, id int64) (*Dict, error) { + pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, id) + var resp Dict + err := m.QueryRowCtx(ctx, &resp, pcmDictIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", dictRows, 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 *defaultDictModel) Insert(ctx context.Context, data *Dict) (sql.Result, error) { + pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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, dictRowsExpectAutoSet) + return conn.ExecCtx(ctx, query, data.DictName, data.DictCode, data.DictValue, data.Source, data.Description, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag) + }, pcmDictIdKey) + return ret, err +} + +func (m *defaultDictModel) Update(ctx context.Context, data *Dict) error { + pcmDictIdKey := fmt.Sprintf("%s%v", cachePcmDictIdPrefix, 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, dictRowsWithPlaceHolder) + return conn.ExecCtx(ctx, query, data.DictName, data.DictCode, data.DictValue, data.Source, data.Description, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag, data.Id) + }, pcmDictIdKey) + return err +} + +func (m *defaultDictModel) formatPrimary(primary interface{}) string { + return fmt.Sprintf("%s%v", cachePcmDictIdPrefix, primary) +} + +func (m *defaultDictModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", dictRows, m.table) + return conn.QueryRowCtx(ctx, v, query, primary) +} + +func (m *defaultDictModel) tableName() string { + return m.table +} diff --git a/adaptor/PCM-CORE/model/taskmodel.go b/adaptor/PCM-CORE/model/taskmodel.go new file mode 100644 index 00000000..7e099adc --- /dev/null +++ b/adaptor/PCM-CORE/model/taskmodel.go @@ -0,0 +1,27 @@ +package model + +import ( + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) + +var _ TaskModel = (*customTaskModel)(nil) + +type ( + // TaskModel is an interface to be customized, add more methods here, + // and implement the added methods in customTaskModel. + TaskModel interface { + taskModel + } + + customTaskModel struct { + *defaultTaskModel + } +) + +// NewTaskModel returns a model for the database table. +func NewTaskModel(conn sqlx.SqlConn, c cache.CacheConf) TaskModel { + return &customTaskModel{ + defaultTaskModel: newTaskModel(conn, c), + } +} diff --git a/adaptor/PCM-CORE/model/taskmodel_gen.go b/adaptor/PCM-CORE/model/taskmodel_gen.go new file mode 100644 index 00000000..5454fc7b --- /dev/null +++ b/adaptor/PCM-CORE/model/taskmodel_gen.go @@ -0,0 +1,124 @@ +// Code generated by goctl. DO NOT EDIT. + +package model + +import ( + "context" + "database/sql" + "fmt" + "strings" + + "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 ( + taskFieldNames = builder.RawFieldNames(&Task{}) + taskRows = strings.Join(taskFieldNames, ",") + taskRowsExpectAutoSet = strings.Join(stringx.Remove(taskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + taskRowsWithPlaceHolder = strings.Join(stringx.Remove(taskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" + + cachePcmTaskIdPrefix = "cache:pcm:task:id:" +) + +type ( + taskModel interface { + Insert(ctx context.Context, data *Task) (sql.Result, error) + FindOne(ctx context.Context, id int64) (*Task, error) + Update(ctx context.Context, data *Task) error + Delete(ctx context.Context, id int64) error + } + + defaultTaskModel struct { + sqlc.CachedConn + table string + } + + Task struct { + Id int64 `db:"id"` // id + JobId string `db:"job_id"` + Description string `db:"description"` // 作业描述 + Name string `db:"name"` // 作业名称 + Type int64 `db:"type"` // 作业类型(1-云算、2-超算、3-智算) + Status string `db:"status"` // 作业状态 + Strategy int64 `db:"strategy"` // 策略 + SynergyStatus int64 `db:"synergy_status"` // 协同状态(0-未协同、1-已协同) + CardCount int64 `db:"card_count"` // 卡数 + StartTime sql.NullTime `db:"start_time"` // 开始运行时间 + EndTime sql.NullTime `db:"end_time"` // 结束运行时间 + RunningTime int64 `db:"running_time"` // 已运行时间(单位秒) + Result string `db:"result"` // 作业结果 + CreatedBy int64 `db:"created_by"` // 创建人 + CreatedTime sql.NullTime `db:"created_time"` // 创建时间 + UpdatedBy int64 `db:"updated_by"` // 更新人 + UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 + DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) + } +) + +func newTaskModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultTaskModel { + return &defaultTaskModel{ + CachedConn: sqlc.NewConn(conn, c), + table: "`task`", + } +} + +func (m *defaultTaskModel) Delete(ctx context.Context, id int64) error { + pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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) + }, pcmTaskIdKey) + return err +} + +func (m *defaultTaskModel) FindOne(ctx context.Context, id int64) (*Task, error) { + pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, id) + var resp Task + err := m.QueryRowCtx(ctx, &resp, pcmTaskIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", taskRows, 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 *defaultTaskModel) Insert(ctx context.Context, data *Task) (sql.Result, error) { + pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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, taskRowsExpectAutoSet) + return conn.ExecCtx(ctx, query, data.JobId, data.Description, data.Name, data.Type, data.Status, data.Strategy, data.SynergyStatus, data.CardCount, data.StartTime, data.EndTime, data.RunningTime, data.Result, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag) + }, pcmTaskIdKey) + return ret, err +} + +func (m *defaultTaskModel) Update(ctx context.Context, data *Task) error { + pcmTaskIdKey := fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, 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, taskRowsWithPlaceHolder) + return conn.ExecCtx(ctx, query, data.JobId, data.Description, data.Name, data.Type, data.Status, data.Strategy, data.SynergyStatus, data.CardCount, data.StartTime, data.EndTime, data.RunningTime, data.Result, data.CreatedBy, data.CreatedTime, data.UpdatedBy, data.UpdatedTime, data.DeletedFlag, data.Id) + }, pcmTaskIdKey) + return err +} + +func (m *defaultTaskModel) formatPrimary(primary interface{}) string { + return fmt.Sprintf("%s%v", cachePcmTaskIdPrefix, primary) +} + +func (m *defaultTaskModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", taskRows, m.table) + return conn.QueryRowCtx(ctx, v, query, primary) +} + +func (m *defaultTaskModel) tableName() string { + return m.table +} diff --git a/adaptor/PCM-CORE/model/vars.go b/adaptor/PCM-CORE/model/vars.go new file mode 100644 index 00000000..69ca814e --- /dev/null +++ b/adaptor/PCM-CORE/model/vars.go @@ -0,0 +1,5 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var ErrNotFound = sqlx.ErrNotFound diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go index e027a2ac..219ac287 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.12.4 +// protoc v3.19.4 // source: hpcAC.proto package hpcAC @@ -26,11 +26,11 @@ type JobManager struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobManagerType string `protobuf:"bytes,1,opt,name=job_manager_type,json=jobManagerType,proto3" json:"JobManagerType" copier:"JobManagerType"` // @gotags: copier:"JobManagerType", json:"JobManagerType" - JobManagerAddr string `protobuf:"bytes,2,opt,name=job_manager_addr,json=jobManagerAddr,proto3" json:"JobManagerAddr" copier:"JobManagerAddr"` // @gotags: copier:"JobManagerAddr", json:"JobManagerAddr" - Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id" copier:"ID"` // @gotags: copier:"ID", json:"id" - Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text" copier:"Text"` // @gotags: copier:"Text", json:"text" - JobManagerPort string `protobuf:"bytes,5,opt,name=job_manager_port,json=jobManagerPort,proto3" json:"JobManagerPort" copier:"JobManagerPort"` // @gotags: copier:"JobManagerPort", json:"JobManagerPort" + JobManagerType string `protobuf:"bytes,1,opt,name=job_manager_type,json=jobManagerType,proto3" json:"job_manager_type,omitempty"` // @gotags: copier:"JobManagerType", json:"JobManagerType" + JobManagerAddr string `protobuf:"bytes,2,opt,name=job_manager_addr,json=jobManagerAddr,proto3" json:"job_manager_addr,omitempty"` // @gotags: copier:"JobManagerAddr", json:"JobManagerAddr" + Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"ID", json:"id" + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` // @gotags: copier:"Text", json:"text" + JobManagerPort string `protobuf:"bytes,5,opt,name=job_manager_port,json=jobManagerPort,proto3" json:"job_manager_port,omitempty"` // @gotags: copier:"JobManagerPort", json:"JobManagerPort" } func (x *JobManager) Reset() { @@ -143,9 +143,9 @@ type ListJobManagerResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" copier:"Code"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg" copier:"Msg"` // @gotags: copier:"Msg", json:"msg" - Data []*JobManager `protobuf:"bytes,3,rep,name=data,proto3" json:"data" copier:"JobManagers"` // @gotags: copier:"JobManagers", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + Data []*JobManager `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"JobManagers", json:"data" } func (x *ListJobManagerResp) Reset() { @@ -207,65 +207,65 @@ type JobInitAttr struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"Account" copier:"Account"` // @gotags: copier:"Account", json:"Account" - AccrueTime string `protobuf:"bytes,2,opt,name=accrue_time,json=accrueTime,proto3" json:"AccrueTime" copier:"AccrueTime"` // @gotags: copier:"AccrueTime", json:"AccrueTime" - AllocNodeSid string `protobuf:"bytes,3,opt,name=alloc_node_sid,json=allocNodeSid,proto3" json:"AllocNode:Sid" copier:"AllocNode:Sid"` // @gotags: copier:"AllocNode:Sid", json:"AllocNode:Sid" - BatchFlag string `protobuf:"bytes,4,opt,name=batch_flag,json=batchFlag,proto3" json:"BatchFlag" copier:"BatchFlag"` // @gotags: copier:"BatchFlag", json:"BatchFlag" - CpusTask string `protobuf:"bytes,5,opt,name=cpus_task,json=cpusTask,proto3" json:"CPUs/Task" copier:"CPUs/Task"` // @gotags: copier:"CPUs/Task", json:"CPUs/Task" - Command string `protobuf:"bytes,6,opt,name=command,proto3" json:"Command" copier:"Command"` // @gotags: copier:"Command", json:"Command" - CommandExist string `protobuf:"bytes,7,opt,name=command_exist,json=commandExist,proto3" json:"CommandExist" copier:"CommandExist"` // @gotags: copier:"CommandExist", json:"CommandExist" - Comment string `protobuf:"bytes,8,opt,name=comment,proto3" json:"Comment" copier:"Comment"` // @gotags: copier:"Comment", json:"Comment" - Contiguous string `protobuf:"bytes,9,opt,name=contiguous,proto3" json:"Contiguous" copier:"Contiguous"` // @gotags: copier:"Contiguous", json:"Contiguous" - CoreSpec string `protobuf:"bytes,10,opt,name=core_spec,json=coreSpec,proto3" json:"CoreSpec" copier:"CoreSpec"` // @gotags: copier:"CoreSpec", json:"CoreSpec" - Deadline string `protobuf:"bytes,11,opt,name=deadline,proto3" json:"Deadline" copier:"Deadline"` // @gotags: copier:"Deadline", json:"Deadline" - DelayBoot string `protobuf:"bytes,12,opt,name=delay_boot,json=delayBoot,proto3" json:"DelayBoot" copier:"DelayBoot"` // @gotags: copier:"DelayBoot", json:"DelayBoot" - Dependency string `protobuf:"bytes,13,opt,name=dependency,proto3" json:"Dependency" copier:"Dependency"` // @gotags: copier:"Dependency", json:"Dependency" - EligibleTime string `protobuf:"bytes,14,opt,name=eligible_time,json=eligibleTime,proto3" json:"EligibleTime" copier:"EligibleTime"` // @gotags: copier:"EligibleTime", json:"EligibleTime" - EndTime string `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"EndTime" copier:"EndTime"` // @gotags: copier:"EndTime", json:"EndTime" - ExcNodeList string `protobuf:"bytes,16,opt,name=exc_node_list,json=excNodeList,proto3" json:"ExcNodeList" copier:"ExcNodeList"` // @gotags: copier:"ExcNodeList", json:"ExcNodeList" - ExitCode string `protobuf:"bytes,17,opt,name=exit_code,json=exitCode,proto3" json:"ExitCode" copier:"ExitCode"` // @gotags: copier:"ExitCode", json:"ExitCode" - Features string `protobuf:"bytes,18,opt,name=features,proto3" json:"Features" copier:"Features"` // @gotags: copier:"Features", json:"Features" - GroupId string `protobuf:"bytes,19,opt,name=group_id,json=groupId,proto3" json:"GroupId" copier:"GroupId"` // @gotags: copier:"GroupId", json:"GroupId" - JobId string `protobuf:"bytes,20,opt,name=job_id,json=jobId,proto3" json:"JobId" copier:"JobId"` // @gotags: copier:"JobId", json:"JobId" - JobName string `protobuf:"bytes,21,opt,name=job_name,json=jobName,proto3" json:"JobName" copier:"JobName"` // @gotags: copier:"JobName", json:"JobName" - JobState string `protobuf:"bytes,22,opt,name=job_state,json=jobState,proto3" json:"JobState" copier:"JobState"` // @gotags: copier:"JobState", json:"JobState" - Licenses string `protobuf:"bytes,23,opt,name=licenses,proto3" json:"Licenses" copier:"Licenses"` // @gotags: copier:"Licenses", json:"Licenses" - McsLabel string `protobuf:"bytes,24,opt,name=mcs_label,json=mcsLabel,proto3" json:"MCS_label" copier:"MCS_label"` // @gotags: copier:"MCS_label", json:"MCS_label" - MinCpusNode string `protobuf:"bytes,25,opt,name=min_cpus_node,json=minCpusNode,proto3" json:"MinCPUsNode" copier:"MinCPUsNode"` // @gotags: copier:"MinCPUsNode", json:"MinCPUsNode" - MinTmpDiskNode string `protobuf:"bytes,26,opt,name=min_tmp_disk_node,json=minTmpDiskNode,proto3" json:"MinTmpDiskNode" copier:"MinTmpDiskNode"` // @gotags: copier:"MinTmpDiskNode", json:"MinTmpDiskNode" - Network string `protobuf:"bytes,27,opt,name=network,proto3" json:"Network" copier:"Network"` // @gotags: copier:"Network", json:"Network" - Nice string `protobuf:"bytes,28,opt,name=nice,proto3" json:"Nice" copier:"Nice"` // @gotags: copier:"Nice", json:"Nice" - NodeList string `protobuf:"bytes,29,opt,name=node_list,json=nodeList,proto3" json:"NodeList" copier:"NodeList"` // @gotags: copier:"NodeList", json:"NodeList" - NtasksPerNbsc string `protobuf:"bytes,30,opt,name=ntasks_per_nbsc,json=ntasksPerNbsc,proto3" json:"NtasksPerN:B:S:C" copier:"NtasksPerN:B:S:C"` // @gotags: copier:"NtasksPerN:B:S:C", json:"NtasksPerN:B:S:C" - NumCpus string `protobuf:"bytes,31,opt,name=num_cpus,json=numCpus,proto3" json:"NumCPUs" copier:"NumCPUs"` // @gotags: copier:"NumCPUs", json:"NumCPUs" - NumNodes string `protobuf:"bytes,32,opt,name=num_nodes,json=numNodes,proto3" json:"NumNodes" copier:"NumNodes"` // @gotags: copier:"NumNodes", json:"NumNodes" - NumTasks string `protobuf:"bytes,33,opt,name=num_tasks,json=numTasks,proto3" json:"NumTasks" copier:"NumTasks"` // @gotags: copier:"NumTasks", json:"NumTasks" - OverSubscribe string `protobuf:"bytes,34,opt,name=over_subscribe,json=overSubscribe,proto3" json:"OverSubscribe" copier:"OverSubscribe"` // @gotags: copier:"OverSubscribe", json:"OverSubscribe" - Partition string `protobuf:"bytes,35,opt,name=partition,proto3" json:"Partition" copier:"Partition"` // @gotags: copier:"Partition", json:"Partition" - Power string `protobuf:"bytes,36,opt,name=power,proto3" json:"Power" copier:"Power"` // @gotags: copier:"Power", json:"Power" - Priority string `protobuf:"bytes,37,opt,name=priority,proto3" json:"Priority" copier:"Priority"` // @gotags: copier:"Priority", json:"Priority" - Qos string `protobuf:"bytes,38,opt,name=qos,proto3" json:"QOS" copier:"QOS"` // @gotags: copier:"QOS", json:"QOS" - Reason string `protobuf:"bytes,39,opt,name=reason,proto3" json:"Reason" copier:"Reason"` // @gotags: copier:"Reason", json:"Reason" - Reboot string `protobuf:"bytes,40,opt,name=reboot,proto3" json:"Reboot" copier:"Reboot"` // @gotags: copier:"Reboot", json:"Reboot" - ReqBsct string `protobuf:"bytes,41,opt,name=req_bsct,json=reqBsct,proto3" json:"ReqB:S:C:T" copier:"ReqB:S:C:T"` // @gotags: copier:"ReqB:S:C:T", json:"ReqB:S:C:T" - ReqNodeList string `protobuf:"bytes,42,opt,name=ReqNodeList,proto3" json:"ReqNodeList" copier:"ReqNodeList"` // @gotags: copier:"ReqNodeList", json:"ReqNodeList" - Requeue string `protobuf:"bytes,43,opt,name=requeue,proto3" json:"Requeue" copier:"Requeue"` // @gotags: copier:"Requeue", json:"Requeue" - Restarts string `protobuf:"bytes,44,opt,name=restarts,proto3" json:"Restarts" copier:"Restarts"` // @gotags: copier:"Restarts", json:"Restarts" - RunTime string `protobuf:"bytes,45,opt,name=run_time,json=runTime,proto3" json:"RunTime" copier:"RunTime"` // @gotags: copier:"RunTime", json:"RunTime" - BatchHost string `protobuf:"bytes,46,opt,name=batch_host,json=batchHost,proto3" json:"BatchHost" copier:"BatchHost"` // @gotags: copier:"BatchHost", json:"BatchHost" - SecsPreSuspend string `protobuf:"bytes,47,opt,name=secs_pre_suspend,json=secsPreSuspend,proto3" json:"SecsPreSuspend" copier:"SecsPreSuspend"` // @gotags: copier:"SecsPreSuspend", json:"SecsPreSuspend" - SocksNode string `protobuf:"bytes,48,opt,name=socks_node,json=socksNode,proto3" json:"Socks/Node" copier:"Socks/Node"` // @gotags: copier:"Socks/Node", json:"Socks/Node" - StartTime string `protobuf:"bytes,49,opt,name=start_time,json=startTime,proto3" json:"StartTime" copier:"StartTime"` // @gotags: copier:"StartTime", json:"StartTime" - StdErr string `protobuf:"bytes,50,opt,name=std_err,json=stdErr,proto3" json:"StdErr" copier:"StdErr"` // @gotags: copier:"StdErr", json:"StdErr" - StdIn string `protobuf:"bytes,51,opt,name=std_in,json=stdIn,proto3" json:"StdIn" copier:"StdIn"` // @gotags: copier:"StdIn", json:"StdIn" - StdOut string `protobuf:"bytes,52,opt,name=std_out,json=stdOut,proto3" json:"StdOut" copier:"StdOut"` // @gotags: copier:"StdOut", json:"StdOut" - SubmitTime string `protobuf:"bytes,53,opt,name=submit_time,json=submitTime,proto3" json:"SubmitTime" copier:"SubmitTime"` // @gotags: copier:"SubmitTime", json:"SubmitTime" - SuspendTime string `protobuf:"bytes,54,opt,name=suspend_time,json=suspendTime,proto3" json:"SuspendTime" copier:"SuspendTime"` // @gotags: copier:"SuspendTime", json:"SuspendTime" - Tres string `protobuf:"bytes,55,opt,name=tres,proto3" json:"TRES" copier:"TRES"` // @gotags: copier:"TRES", json:"TRES" - TimeLimit string `protobuf:"bytes,56,opt,name=time_limit,json=timeLimit,proto3" json:"TimeLimit" copier:"TimeLimit"` // @gotags: copier:"TimeLimit", json:"TimeLimit" - TimeMin string `protobuf:"bytes,57,opt,name=time_min,json=timeMin,proto3" json:"TimeMin" copier:"TimeMin"` // @gotags: copier:"TimeMin", json:"TimeMin" - UserId string `protobuf:"bytes,58,opt,name=user_id,json=userId,proto3" json:"UserId" copier:"UserId"` // @gotags: copier:"UserId", json:"UserId" - WorkDir string `protobuf:"bytes,59,opt,name=work_dir,json=workDir,proto3" json:"WorkDir" copier:"WorkDir"` // @gotags: copier:"WorkDir", json:"WorkDir" + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // @gotags: copier:"Account", json:"Account" + AccrueTime string `protobuf:"bytes,2,opt,name=accrue_time,json=accrueTime,proto3" json:"accrue_time,omitempty"` // @gotags: copier:"AccrueTime", json:"AccrueTime" + AllocNodeSid string `protobuf:"bytes,3,opt,name=alloc_node_sid,json=allocNodeSid,proto3" json:"alloc_node_sid,omitempty"` // @gotags: copier:"AllocNode:Sid", json:"AllocNode:Sid" + BatchFlag string `protobuf:"bytes,4,opt,name=batch_flag,json=batchFlag,proto3" json:"batch_flag,omitempty"` // @gotags: copier:"BatchFlag", json:"BatchFlag" + CpusTask string `protobuf:"bytes,5,opt,name=cpus_task,json=cpusTask,proto3" json:"cpus_task,omitempty"` // @gotags: copier:"CPUs/Task", json:"CPUs/Task" + Command string `protobuf:"bytes,6,opt,name=command,proto3" json:"command,omitempty"` // @gotags: copier:"Command", json:"Command" + CommandExist string `protobuf:"bytes,7,opt,name=command_exist,json=commandExist,proto3" json:"command_exist,omitempty"` // @gotags: copier:"CommandExist", json:"CommandExist" + Comment string `protobuf:"bytes,8,opt,name=comment,proto3" json:"comment,omitempty"` // @gotags: copier:"Comment", json:"Comment" + Contiguous string `protobuf:"bytes,9,opt,name=contiguous,proto3" json:"contiguous,omitempty"` // @gotags: copier:"Contiguous", json:"Contiguous" + CoreSpec string `protobuf:"bytes,10,opt,name=core_spec,json=coreSpec,proto3" json:"core_spec,omitempty"` // @gotags: copier:"CoreSpec", json:"CoreSpec" + Deadline string `protobuf:"bytes,11,opt,name=deadline,proto3" json:"deadline,omitempty"` // @gotags: copier:"Deadline", json:"Deadline" + DelayBoot string `protobuf:"bytes,12,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` // @gotags: copier:"DelayBoot", json:"DelayBoot" + Dependency string `protobuf:"bytes,13,opt,name=dependency,proto3" json:"dependency,omitempty"` // @gotags: copier:"Dependency", json:"Dependency" + EligibleTime string `protobuf:"bytes,14,opt,name=eligible_time,json=eligibleTime,proto3" json:"eligible_time,omitempty"` // @gotags: copier:"EligibleTime", json:"EligibleTime" + EndTime string `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // @gotags: copier:"EndTime", json:"EndTime" + ExcNodeList string `protobuf:"bytes,16,opt,name=exc_node_list,json=excNodeList,proto3" json:"exc_node_list,omitempty"` // @gotags: copier:"ExcNodeList", json:"ExcNodeList" + ExitCode string `protobuf:"bytes,17,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // @gotags: copier:"ExitCode", json:"ExitCode" + Features string `protobuf:"bytes,18,opt,name=features,proto3" json:"features,omitempty"` // @gotags: copier:"Features", json:"Features" + GroupId string `protobuf:"bytes,19,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // @gotags: copier:"GroupId", json:"GroupId" + JobId string `protobuf:"bytes,20,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"JobId" + JobName string `protobuf:"bytes,21,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` // @gotags: copier:"JobName", json:"JobName" + JobState string `protobuf:"bytes,22,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty"` // @gotags: copier:"JobState", json:"JobState" + Licenses string `protobuf:"bytes,23,opt,name=licenses,proto3" json:"licenses,omitempty"` // @gotags: copier:"Licenses", json:"Licenses" + McsLabel string `protobuf:"bytes,24,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` // @gotags: copier:"MCS_label", json:"MCS_label" + MinCpusNode string `protobuf:"bytes,25,opt,name=min_cpus_node,json=minCpusNode,proto3" json:"min_cpus_node,omitempty"` // @gotags: copier:"MinCPUsNode", json:"MinCPUsNode" + MinTmpDiskNode string `protobuf:"bytes,26,opt,name=min_tmp_disk_node,json=minTmpDiskNode,proto3" json:"min_tmp_disk_node,omitempty"` // @gotags: copier:"MinTmpDiskNode", json:"MinTmpDiskNode" + Network string `protobuf:"bytes,27,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"Network", json:"Network" + Nice string `protobuf:"bytes,28,opt,name=nice,proto3" json:"nice,omitempty"` // @gotags: copier:"Nice", json:"Nice" + NodeList string `protobuf:"bytes,29,opt,name=node_list,json=nodeList,proto3" json:"node_list,omitempty"` // @gotags: copier:"NodeList", json:"NodeList" + NtasksPerNbsc string `protobuf:"bytes,30,opt,name=ntasks_per_nbsc,json=ntasksPerNbsc,proto3" json:"ntasks_per_nbsc,omitempty"` // @gotags: copier:"NtasksPerN:B:S:C", json:"NtasksPerN:B:S:C" + NumCpus string `protobuf:"bytes,31,opt,name=num_cpus,json=numCpus,proto3" json:"num_cpus,omitempty"` // @gotags: copier:"NumCPUs", json:"NumCPUs" + NumNodes string `protobuf:"bytes,32,opt,name=num_nodes,json=numNodes,proto3" json:"num_nodes,omitempty"` // @gotags: copier:"NumNodes", json:"NumNodes" + NumTasks string `protobuf:"bytes,33,opt,name=num_tasks,json=numTasks,proto3" json:"num_tasks,omitempty"` // @gotags: copier:"NumTasks", json:"NumTasks" + OverSubscribe string `protobuf:"bytes,34,opt,name=over_subscribe,json=overSubscribe,proto3" json:"over_subscribe,omitempty"` // @gotags: copier:"OverSubscribe", json:"OverSubscribe" + Partition string `protobuf:"bytes,35,opt,name=partition,proto3" json:"partition,omitempty"` // @gotags: copier:"Partition", json:"Partition" + Power string `protobuf:"bytes,36,opt,name=power,proto3" json:"power,omitempty"` // @gotags: copier:"Power", json:"Power" + Priority string `protobuf:"bytes,37,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority", json:"Priority" + Qos string `protobuf:"bytes,38,opt,name=qos,proto3" json:"qos,omitempty"` // @gotags: copier:"QOS", json:"QOS" + Reason string `protobuf:"bytes,39,opt,name=reason,proto3" json:"reason,omitempty"` // @gotags: copier:"Reason", json:"Reason" + Reboot string `protobuf:"bytes,40,opt,name=reboot,proto3" json:"reboot,omitempty"` // @gotags: copier:"Reboot", json:"Reboot" + ReqBsct string `protobuf:"bytes,41,opt,name=req_bsct,json=reqBsct,proto3" json:"req_bsct,omitempty"` // @gotags: copier:"ReqB:S:C:T", json:"ReqB:S:C:T" + ReqNodeList string `protobuf:"bytes,42,opt,name=ReqNodeList,proto3" json:"ReqNodeList,omitempty"` // @gotags: copier:"ReqNodeList", json:"ReqNodeList" + Requeue string `protobuf:"bytes,43,opt,name=requeue,proto3" json:"requeue,omitempty"` // @gotags: copier:"Requeue", json:"Requeue" + Restarts string `protobuf:"bytes,44,opt,name=restarts,proto3" json:"restarts,omitempty"` // @gotags: copier:"Restarts", json:"Restarts" + RunTime string `protobuf:"bytes,45,opt,name=run_time,json=runTime,proto3" json:"run_time,omitempty"` // @gotags: copier:"RunTime", json:"RunTime" + BatchHost string `protobuf:"bytes,46,opt,name=batch_host,json=batchHost,proto3" json:"batch_host,omitempty"` // @gotags: copier:"BatchHost", json:"BatchHost" + SecsPreSuspend string `protobuf:"bytes,47,opt,name=secs_pre_suspend,json=secsPreSuspend,proto3" json:"secs_pre_suspend,omitempty"` // @gotags: copier:"SecsPreSuspend", json:"SecsPreSuspend" + SocksNode string `protobuf:"bytes,48,opt,name=socks_node,json=socksNode,proto3" json:"socks_node,omitempty"` // @gotags: copier:"Socks/Node", json:"Socks/Node" + StartTime string `protobuf:"bytes,49,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // @gotags: copier:"StartTime", json:"StartTime" + StdErr string `protobuf:"bytes,50,opt,name=std_err,json=stdErr,proto3" json:"std_err,omitempty"` // @gotags: copier:"StdErr", json:"StdErr" + StdIn string `protobuf:"bytes,51,opt,name=std_in,json=stdIn,proto3" json:"std_in,omitempty"` // @gotags: copier:"StdIn", json:"StdIn" + StdOut string `protobuf:"bytes,52,opt,name=std_out,json=stdOut,proto3" json:"std_out,omitempty"` // @gotags: copier:"StdOut", json:"StdOut" + SubmitTime string `protobuf:"bytes,53,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` // @gotags: copier:"SubmitTime", json:"SubmitTime" + SuspendTime string `protobuf:"bytes,54,opt,name=suspend_time,json=suspendTime,proto3" json:"suspend_time,omitempty"` // @gotags: copier:"SuspendTime", json:"SuspendTime" + Tres string `protobuf:"bytes,55,opt,name=tres,proto3" json:"tres,omitempty"` // @gotags: copier:"TRES", json:"TRES" + TimeLimit string `protobuf:"bytes,56,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` // @gotags: copier:"TimeLimit", json:"TimeLimit" + TimeMin string `protobuf:"bytes,57,opt,name=time_min,json=timeMin,proto3" json:"time_min,omitempty"` // @gotags: copier:"TimeMin", json:"TimeMin" + UserId string `protobuf:"bytes,58,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // @gotags: copier:"UserId", json:"UserId" + WorkDir string `protobuf:"bytes,59,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir", json:"WorkDir" } func (x *JobInitAttr) Reset() { @@ -718,28 +718,28 @@ type JobVncSessionInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Archive string `protobuf:"bytes,1,opt,name=archive,proto3" json:"archive" copier:"archive"` // @gotags: copier:"archive", json:"archive" - IClientNumber uint32 `protobuf:"varint,2,opt,name=i_client_number,json=iClientNumber,proto3" json:"iClientNumber" copier:"iClientNumber"` // @gotags: copier:"iClientNumber", json:"iClientNumber" - IPixelDepth string `protobuf:"bytes,3,opt,name=i_pixel_depth,json=iPixelDepth,proto3" json:"iPixelDepth" copier:"iPixelDepth"` // @gotags: copier:"iPixelDepth", json:"iPixelDepth" - ListClients string `protobuf:"bytes,4,opt,name=list_clients,json=listClients,proto3" json:"listClients" copier:"listClients"` // @gotags: copier:"listClients", json:"listClients" - Locale string `protobuf:"bytes,5,opt,name=locale,proto3" json:"locale" copier:"locale"` // @gotags: copier:"locale", json:"locale" - LoginPasswd string `protobuf:"bytes,6,opt,name=loginPasswd,proto3" json:"loginPasswd" copier:"loginPasswd"` // @gotags: copier:"loginPasswd", json:"loginPasswd" - MapSessionExtraAttrs string `protobuf:"bytes,7,opt,name=map_session_extra_attrs,json=mapSessionExtraAttrs,proto3" json:"mapSessionExtraAttrs" copier:"mapSessionExtraAttrs"` // @gotags: copier:"mapSessionExtraAttrs", json:"mapSessionExtraAttrs" - StrAuthType string `protobuf:"bytes,8,opt,name=str_auth_type,json=strAuthType,proto3" json:"strAuthType" copier:"strAuthType"` // @gotags: copier:"strAuthType", json:"strAuthType" - StrGeometry string `protobuf:"bytes,9,opt,name=str_geometry,json=strGeometry,proto3" json:"strGeometry" copier:"strGeometry"` // @gotags: copier:"strGeometry", json:"strGeometry" - StrJobManagerAddr string `protobuf:"bytes,10,opt,name=str_job_manager_addr,json=strJobManagerAddr,proto3" json:"strJobManagerAddr" copier:"strJobManagerAddr"` // @gotags: copier:"strJobManagerAddr", json:"strJobManagerAddr" - StrJobManagerId string `protobuf:"bytes,11,opt,name=str_job_manager_id,json=strJobManagerId,proto3" json:"strJobManagerID" copier:"strJobManagerID"` // @gotags: copier:"strJobManagerID", json:"strJobManagerID" - StrJobManagerName string `protobuf:"bytes,12,opt,name=str_job_manager_name,json=strJobManagerName,proto3" json:"strJobManagerName" copier:"strJobManagerName"` // @gotags: copier:"strJobManagerName", json:"strJobManagerName" - StrRelateJobId string `protobuf:"bytes,13,opt,name=str_relate_job_id,json=strRelateJobId,proto3" json:"strRelateJobID" copier:"strRelateJobID"` // @gotags: copier:"strRelateJobID", json:"strRelateJobID" - StrServerAddr string `protobuf:"bytes,14,opt,name=str_server_addr,json=strServerAddr,proto3" json:"strServerAddr" copier:"strServerAddr"` // @gotags: copier:"strServerAddr", json:"strServerAddr" - StrServerName string `protobuf:"bytes,15,opt,name=str_server_name,json=strServerName,proto3" json:"strServerName" copier:"strServerName"` // @gotags: copier:"strServerName", json:"strServerName" - StrSessionCtime string `protobuf:"bytes,16,opt,name=str_session_ctime,json=strSessionCtime,proto3" json:"strSessionCTime" copier:"strSessionCTime"` // @gotags: copier:"strSessionCTime", json:"strSessionCTime" - StrSessionHeight string `protobuf:"bytes,17,opt,name=str_session_height,json=strSessionHeight,proto3" json:"strSessionHeight" copier:"strSessionHeight"` // @gotags: copier:"strSessionHeight", json:"strSessionHeight" - StrSessionId string `protobuf:"bytes,18,opt,name=str_session_id,json=strSessionId,proto3" json:"strSessionID" copier:"strSessionID"` // @gotags: copier:"strSessionID", json:"strSessionID" - StrSessionOwner string `protobuf:"bytes,19,opt,name=str_session_owner,json=strSessionOwner,proto3" json:"strSessionOwner" copier:"strSessionOwner"` // @gotags: copier:"strSessionOwner", json:"strSessionOwner" - StrSessionType string `protobuf:"bytes,20,opt,name=str_session_type,json=strSessionType,proto3" json:"strSessionType" copier:"strSessionType"` // @gotags: copier:"strSessionType", json:"strSessionType" - StrSessionWidth string `protobuf:"bytes,21,opt,name=str_session_width,json=strSessionWidth,proto3" json:"strSessionWidth" copier:"strSessionWidth"` // @gotags: copier:"strSessionWidth", json:"strSessionWidth" - VncCode string `protobuf:"bytes,22,opt,name=vnc_code,json=vncCode,proto3" json:"vncCode" copier:"vncCode"` // @gotags: copier:"vncCode", json:"vncCode" + Archive string `protobuf:"bytes,1,opt,name=archive,proto3" json:"archive,omitempty"` // @gotags: copier:"archive", json:"archive" + IClientNumber uint32 `protobuf:"varint,2,opt,name=i_client_number,json=iClientNumber,proto3" json:"i_client_number,omitempty"` // @gotags: copier:"iClientNumber", json:"iClientNumber" + IPixelDepth string `protobuf:"bytes,3,opt,name=i_pixel_depth,json=iPixelDepth,proto3" json:"i_pixel_depth,omitempty"` // @gotags: copier:"iPixelDepth", json:"iPixelDepth" + ListClients string `protobuf:"bytes,4,opt,name=list_clients,json=listClients,proto3" json:"list_clients,omitempty"` // @gotags: copier:"listClients", json:"listClients" + Locale string `protobuf:"bytes,5,opt,name=locale,proto3" json:"locale,omitempty"` // @gotags: copier:"locale", json:"locale" + LoginPasswd string `protobuf:"bytes,6,opt,name=loginPasswd,proto3" json:"loginPasswd,omitempty"` // @gotags: copier:"loginPasswd", json:"loginPasswd" + MapSessionExtraAttrs string `protobuf:"bytes,7,opt,name=map_session_extra_attrs,json=mapSessionExtraAttrs,proto3" json:"map_session_extra_attrs,omitempty"` // @gotags: copier:"mapSessionExtraAttrs", json:"mapSessionExtraAttrs" + StrAuthType string `protobuf:"bytes,8,opt,name=str_auth_type,json=strAuthType,proto3" json:"str_auth_type,omitempty"` // @gotags: copier:"strAuthType", json:"strAuthType" + StrGeometry string `protobuf:"bytes,9,opt,name=str_geometry,json=strGeometry,proto3" json:"str_geometry,omitempty"` // @gotags: copier:"strGeometry", json:"strGeometry" + StrJobManagerAddr string `protobuf:"bytes,10,opt,name=str_job_manager_addr,json=strJobManagerAddr,proto3" json:"str_job_manager_addr,omitempty"` // @gotags: copier:"strJobManagerAddr", json:"strJobManagerAddr" + StrJobManagerId string `protobuf:"bytes,11,opt,name=str_job_manager_id,json=strJobManagerId,proto3" json:"str_job_manager_id,omitempty"` // @gotags: copier:"strJobManagerID", json:"strJobManagerID" + StrJobManagerName string `protobuf:"bytes,12,opt,name=str_job_manager_name,json=strJobManagerName,proto3" json:"str_job_manager_name,omitempty"` // @gotags: copier:"strJobManagerName", json:"strJobManagerName" + StrRelateJobId string `protobuf:"bytes,13,opt,name=str_relate_job_id,json=strRelateJobId,proto3" json:"str_relate_job_id,omitempty"` // @gotags: copier:"strRelateJobID", json:"strRelateJobID" + StrServerAddr string `protobuf:"bytes,14,opt,name=str_server_addr,json=strServerAddr,proto3" json:"str_server_addr,omitempty"` // @gotags: copier:"strServerAddr", json:"strServerAddr" + StrServerName string `protobuf:"bytes,15,opt,name=str_server_name,json=strServerName,proto3" json:"str_server_name,omitempty"` // @gotags: copier:"strServerName", json:"strServerName" + StrSessionCtime string `protobuf:"bytes,16,opt,name=str_session_ctime,json=strSessionCtime,proto3" json:"str_session_ctime,omitempty"` // @gotags: copier:"strSessionCTime", json:"strSessionCTime" + StrSessionHeight string `protobuf:"bytes,17,opt,name=str_session_height,json=strSessionHeight,proto3" json:"str_session_height,omitempty"` // @gotags: copier:"strSessionHeight", json:"strSessionHeight" + StrSessionId string `protobuf:"bytes,18,opt,name=str_session_id,json=strSessionId,proto3" json:"str_session_id,omitempty"` // @gotags: copier:"strSessionID", json:"strSessionID" + StrSessionOwner string `protobuf:"bytes,19,opt,name=str_session_owner,json=strSessionOwner,proto3" json:"str_session_owner,omitempty"` // @gotags: copier:"strSessionOwner", json:"strSessionOwner" + StrSessionType string `protobuf:"bytes,20,opt,name=str_session_type,json=strSessionType,proto3" json:"str_session_type,omitempty"` // @gotags: copier:"strSessionType", json:"strSessionType" + StrSessionWidth string `protobuf:"bytes,21,opt,name=str_session_width,json=strSessionWidth,proto3" json:"str_session_width,omitempty"` // @gotags: copier:"strSessionWidth", json:"strSessionWidth" + VncCode string `protobuf:"bytes,22,opt,name=vnc_code,json=vncCode,proto3" json:"vnc_code,omitempty"` // @gotags: copier:"vncCode", json:"vncCode" } func (x *JobVncSessionInfo) Reset() { @@ -933,41 +933,41 @@ type JobDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AppType string `protobuf:"bytes,1,opt,name=app_type,json=appType,proto3" json:"appType" copier:"AppType"` // @gotags: copier:"AppType", json:"appType" - AveRss string `protobuf:"bytes,2,opt,name=ave_rss,json=aveRss,proto3" json:"aveRSS" copier:"AveRSS"` // @gotags: copier:"AveRSS", json:"aveRSS" - AveVmSize string `protobuf:"bytes,3,opt,name=ave_vm_size,json=aveVmSize,proto3" json:"aveVMSize" copier:"AveVMSize"` // @gotags: copier:"AveVMSize", json:"aveVMSize" - CpuTimeUsed string `protobuf:"bytes,4,opt,name=cpu_time_used,json=cpuTimeUsed,proto3" json:"cpuTimeUsed" copier:"CpuTimeUsed"` // @gotags: copier:"CpuTimeUsed", json:"cpuTimeUsed" - DcuNumReq uint32 `protobuf:"varint,5,opt,name=dcu_num_req,json=dcuNumReq,proto3" json:"dcuNumReq" copier:"DcuNumReq"` // @gotags: copier:"DcuNumReq", json:"dcuNumReq" - DcuNumUsed uint32 `protobuf:"varint,6,opt,name=dcu_num_used,json=dcuNumUsed,proto3" json:"dcuNumUsed" copier:"DcuNumUsed"` // @gotags: copier:"DcuNumUsed", json:"dcuNumUsed" - ErrorPath string `protobuf:"bytes,7,opt,name=error_path,json=errorPath,proto3" json:"errorPath" copier:"ErrorPath"` // @gotags: copier:"ErrorPath", json:"errorPath" - ExitCode string `protobuf:"bytes,8,opt,name=exit_code,json=exitCode,proto3" json:"exitCode" copier:"ExitCode"` // @gotags: copier:"ExitCode", json:"exitCode" - GpuNumReq uint32 `protobuf:"varint,9,opt,name=gpu_num_req,json=gpuNumReq,proto3" json:"gpuNumReq" copier:"GpuNumReq"` // @gotags: copier:"GpuNumReq", json:"gpuNumReq" - GpuNumUsed uint32 `protobuf:"varint,10,opt,name=gpu_num_used,json=gpuNumUsed,proto3" json:"gpuNumUsed" copier:"GpuNumUsed"` // @gotags: copier:"GpuNumUsed", json:"gpuNumUsed" - JobEndTime string `protobuf:"bytes,11,opt,name=job_end_time,json=jobEndTime,proto3" json:"jobEndTime" copier:"JobEndTime"` // @gotags: copier:"JobEndTime", json:"jobEndTime" - JobId string `protobuf:"bytes,12,opt,name=job_id,json=jobId,proto3" json:"jobId" copier:"JobId"` // @gotags: copier:"JobId", json:"jobId" - JobInitAttr *JobInitAttr `protobuf:"bytes,13,opt,name=job_init_attr,json=jobInitAttr,proto3" json:"JobInitAttr" copier:"JobInitAttr"` // @gotags: copier:"JobInitAttr", json:"JobInitAttr" - JobName string `protobuf:"bytes,14,opt,name=job_name,json=jobName,proto3" json:"jobName" copier:"JobName"` // @gotags: copier:"JobName", json:"jobName" - JobRunTime string `protobuf:"bytes,15,opt,name=job_run_time,json=jobRunTime,proto3" json:"jobRunTime" copier:"JobRunTime"` // @gotags: copier:"JobRunTime", json:"jobRunTime" - JobStartTime string `protobuf:"bytes,16,opt,name=job_start_time,json=jobStartTime,proto3" json:"jobStartTime" copier:"JobStartTime"` // @gotags: copier:"JobStartTime", json:"jobStartTime" - JobStatus string `protobuf:"bytes,17,opt,name=job_status,json=jobStatus,proto3" json:"jobStatus" copier:"JobStatus"` // @gotags: copier:"JobStatus", json:"jobStatus" - JobSubmitTime string `protobuf:"bytes,18,opt,name=job_submit_time,json=jobSubmitTime,proto3" json:"jobSubmitTime" copier:"JobSubmitTime"` // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" - JobSessionInfo *JobVncSessionInfo `protobuf:"bytes,19,opt,name=job_session_info,json=jobSessionInfo,proto3" json:"jobVncSessionInfo" copier:"JobVncSessionInfo"` // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" - JobManagerId string `protobuf:"bytes,20,opt,name=job_manager_id,json=jobManagerId,proto3" json:"jobmanagerId" copier:"JobManagerId"` // @gotags: copier:"JobManagerId", json:"jobmanagerId" - JobManagerName string `protobuf:"bytes,21,opt,name=job_manager_name,json=jobManagerName,proto3" json:"jobmanagerName" copier:"JobManagerName"` // @gotags: copier:"JobManagerName", json:"jobmanagerName" - JobManagerType string `protobuf:"bytes,22,opt,name=job_manager_type,json=jobManagerType,proto3" json:"jobmanagerType" copier:"JobManagerType"` // @gotags: copier:"JobManagerType", json:"jobmanagerType" - MemUsed string `protobuf:"bytes,23,opt,name=mem_used,json=memUsed,proto3" json:"memUsed" copier:"MemUsed"` // @gotags: copier:"MemUsed", json:"memUsed" - NodeNumReq uint32 `protobuf:"varint,24,opt,name=node_num_req,json=nodeNumReq,proto3" json:"nodeNumReq" copier:"NodeNumReq"` // @gotags: copier:"NodeNumReq", json:"nodeNumReq" - NodeUsed string `protobuf:"bytes,25,opt,name=node_used,json=nodeUsed,proto3" json:"nodeUsed" copier:"NodeUsed"` // @gotags: copier:"NodeUsed", json:"nodeUsed" - OutputPath string `protobuf:"bytes,26,opt,name=output_path,json=outputPath,proto3" json:"outputPath" copier:"OutputPath"` // @gotags: copier:"OutputPath", json:"outputPath" - Priority string `protobuf:"bytes,27,opt,name=priority,proto3" json:"priority" copier:"Priority"` // @gotags: copier:"Priority", json:"priority" - ProcNumReq uint32 `protobuf:"varint,28,opt,name=proc_num_req,json=procNumReq,proto3" json:"procNumReq" copier:"ProcNumReq"` // @gotags: copier:"ProcNumReq", json:"procNumReq" - ProcNumUsed uint32 `protobuf:"varint,29,opt,name=proc_num_used,json=procNumUsed,proto3" json:"procNumUsed" copier:"procNumUsed"` // @gotags: copier:"procNumUsed", json:"procNumUsed" - Queue string `protobuf:"bytes,30,opt,name=queue,proto3" json:"queue" copier:"Queue"` // @gotags: copier:"Queue", json:"queue" - Restarts string `protobuf:"bytes,31,opt,name=restarts,proto3" json:"restarts" copier:"Restarts"` // @gotags: copier:"Restarts", json:"restarts" - Scale string `protobuf:"bytes,32,opt,name=scale,proto3" json:"scale" copier:"Scale"` // @gotags: copier:"Scale", json:"scale" - User string `protobuf:"bytes,33,opt,name=user,proto3" json:"user" copier:"User"` // @gotags: copier:"User", json:"user" - WalltimeReq string `protobuf:"bytes,34,opt,name=walltime_req,json=walltimeReq,proto3" json:"walltimeReq" copier:"WalltimeReq"` // @gotags: copier:"WalltimeReq", json:"walltimeReq" - WorkDir string `protobuf:"bytes,35,opt,name=work_dir,json=workDir,proto3" json:"workDir" copier:"WorkDir"` // @gotags: copier:"WorkDir", json:"workDir" + AppType string `protobuf:"bytes,1,opt,name=app_type,json=appType,proto3" json:"app_type,omitempty"` // @gotags: copier:"AppType", json:"appType" + AveRss string `protobuf:"bytes,2,opt,name=ave_rss,json=aveRss,proto3" json:"ave_rss,omitempty"` // @gotags: copier:"AveRSS", json:"aveRSS" + AveVmSize string `protobuf:"bytes,3,opt,name=ave_vm_size,json=aveVmSize,proto3" json:"ave_vm_size,omitempty"` // @gotags: copier:"AveVMSize", json:"aveVMSize" + CpuTimeUsed string `protobuf:"bytes,4,opt,name=cpu_time_used,json=cpuTimeUsed,proto3" json:"cpu_time_used,omitempty"` // @gotags: copier:"CpuTimeUsed", json:"cpuTimeUsed" + DcuNumReq uint32 `protobuf:"varint,5,opt,name=dcu_num_req,json=dcuNumReq,proto3" json:"dcu_num_req,omitempty"` // @gotags: copier:"DcuNumReq", json:"dcuNumReq" + DcuNumUsed uint32 `protobuf:"varint,6,opt,name=dcu_num_used,json=dcuNumUsed,proto3" json:"dcu_num_used,omitempty"` // @gotags: copier:"DcuNumUsed", json:"dcuNumUsed" + ErrorPath string `protobuf:"bytes,7,opt,name=error_path,json=errorPath,proto3" json:"error_path,omitempty"` // @gotags: copier:"ErrorPath", json:"errorPath" + ExitCode string `protobuf:"bytes,8,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // @gotags: copier:"ExitCode", json:"exitCode" + GpuNumReq uint32 `protobuf:"varint,9,opt,name=gpu_num_req,json=gpuNumReq,proto3" json:"gpu_num_req,omitempty"` // @gotags: copier:"GpuNumReq", json:"gpuNumReq" + GpuNumUsed uint32 `protobuf:"varint,10,opt,name=gpu_num_used,json=gpuNumUsed,proto3" json:"gpu_num_used,omitempty"` // @gotags: copier:"GpuNumUsed", json:"gpuNumUsed" + JobEndTime string `protobuf:"bytes,11,opt,name=job_end_time,json=jobEndTime,proto3" json:"job_end_time,omitempty"` // @gotags: copier:"JobEndTime", json:"jobEndTime" + JobId string `protobuf:"bytes,12,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"jobId" + JobInitAttr *JobInitAttr `protobuf:"bytes,13,opt,name=job_init_attr,json=jobInitAttr,proto3" json:"job_init_attr,omitempty"` // @gotags: copier:"JobInitAttr", json:"JobInitAttr" + JobName string `protobuf:"bytes,14,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` // @gotags: copier:"JobName", json:"jobName" + JobRunTime string `protobuf:"bytes,15,opt,name=job_run_time,json=jobRunTime,proto3" json:"job_run_time,omitempty"` // @gotags: copier:"JobRunTime", json:"jobRunTime" + JobStartTime string `protobuf:"bytes,16,opt,name=job_start_time,json=jobStartTime,proto3" json:"job_start_time,omitempty"` // @gotags: copier:"JobStartTime", json:"jobStartTime" + JobStatus string `protobuf:"bytes,17,opt,name=jobStatus,proto3" json:"jobStatus,omitempty"` // @gotags: copier:"JobStatus", json:"jobStatus" + JobSubmitTime string `protobuf:"bytes,18,opt,name=job_submit_time,json=jobSubmitTime,proto3" json:"job_submit_time,omitempty"` // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" + JobSessionInfo *JobVncSessionInfo `protobuf:"bytes,19,opt,name=job_session_info,json=jobSessionInfo,proto3" json:"job_session_info,omitempty"` // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" + JobManagerId string `protobuf:"bytes,20,opt,name=job_manager_id,json=jobManagerId,proto3" json:"job_manager_id,omitempty"` // @gotags: copier:"JobManagerId", json:"jobmanagerId" + JobManagerName string `protobuf:"bytes,21,opt,name=job_manager_name,json=jobManagerName,proto3" json:"job_manager_name,omitempty"` // @gotags: copier:"JobManagerName", json:"jobmanagerName" + JobManagerType string `protobuf:"bytes,22,opt,name=job_manager_type,json=jobManagerType,proto3" json:"job_manager_type,omitempty"` // @gotags: copier:"JobManagerType", json:"jobmanagerType" + MemUsed string `protobuf:"bytes,23,opt,name=mem_used,json=memUsed,proto3" json:"mem_used,omitempty"` // @gotags: copier:"MemUsed", json:"memUsed" + NodeNumReq uint32 `protobuf:"varint,24,opt,name=node_num_req,json=nodeNumReq,proto3" json:"node_num_req,omitempty"` // @gotags: copier:"NodeNumReq", json:"nodeNumReq" + NodeUsed string `protobuf:"bytes,25,opt,name=node_used,json=nodeUsed,proto3" json:"node_used,omitempty"` // @gotags: copier:"NodeUsed", json:"nodeUsed" + OutputPath string `protobuf:"bytes,26,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"` // @gotags: copier:"OutputPath", json:"outputPath" + Priority string `protobuf:"bytes,27,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority", json:"priority" + ProcNumReq uint32 `protobuf:"varint,28,opt,name=proc_num_req,json=procNumReq,proto3" json:"proc_num_req,omitempty"` // @gotags: copier:"ProcNumReq", json:"procNumReq" + ProcNumUsed uint32 `protobuf:"varint,29,opt,name=proc_num_used,json=procNumUsed,proto3" json:"proc_num_used,omitempty"` // @gotags: copier:"procNumUsed", json:"procNumUsed" + Queue string `protobuf:"bytes,30,opt,name=queue,proto3" json:"queue,omitempty"` // @gotags: copier:"Queue", json:"queue" + Restarts string `protobuf:"bytes,31,opt,name=restarts,proto3" json:"restarts,omitempty"` // @gotags: copier:"Restarts", json:"restarts" + Scale string `protobuf:"bytes,32,opt,name=scale,proto3" json:"scale,omitempty"` // @gotags: copier:"Scale", json:"scale" + User string `protobuf:"bytes,33,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User", json:"user" + WalltimeReq string `protobuf:"bytes,34,opt,name=walltime_req,json=walltimeReq,proto3" json:"walltime_req,omitempty"` // @gotags: copier:"WalltimeReq", json:"walltimeReq" + WorkDir string `protobuf:"bytes,35,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir", json:"workDir" } func (x *JobDetail) Reset() { @@ -1252,7 +1252,7 @@ type JobDetailReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId" copier:"JobId"` // @gotags: copier:"JobId", json:"jobId" + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"jobId" } func (x *JobDetailReq) Reset() { @@ -1299,9 +1299,9 @@ type GetJobDetailResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" copier:"Code"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg" copier:"Msg"` // @gotags: copier:"Msg", json:"msg" - Data *JobDetail `protobuf:"bytes,3,opt,name=data,proto3" json:"data" copier:"JobDetail"` // @gotags: copier:"JobDetail", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + Data *JobDetail `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"data", json:"data" } func (x *GetJobDetailResp) Reset() { @@ -1363,7 +1363,7 @@ type DeleteJobReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StrJobInfoMap string `protobuf:"bytes,1,opt,name=str_job_info_map,json=strJobInfoMap,proto3" json:"strJobInfoMap" copier:"strJobInfoMap"` // @gotags: copier:"strJobInfoMap", json:"strJobInfoMap" + StrJobInfoMap string `protobuf:"bytes,1,opt,name=str_job_info_map,json=strJobInfoMap,proto3" json:"str_job_info_map,omitempty"` // @gotags: copier:"strJobInfoMap", json:"strJobInfoMap" } func (x *DeleteJobReq) Reset() { @@ -1410,9 +1410,9 @@ type DeleteJobResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" copier:"Code"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg" copier:"Msg"` // @gotags: copier:"Msg", json:"msg" - Data map[string]string `protobuf:"bytes,3,rep,name=data,proto3" json:"data" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" copier:"Result"` // @gotags: copier:"Result", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + Data map[string]string `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // @gotags: copier:"Result", json:"data" } func (x *DeleteJobResp) Reset() { @@ -1474,23 +1474,23 @@ type Job struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty" copier:"JobId"` // @gotags: copier:"JobId" - JobName string `protobuf:"bytes,2,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty" copier:"Name"` // @gotags: copier:"Name" - JobStatus string `protobuf:"bytes,3,opt,name=job_status,json=jobStatus,proto3" json:"job_status,omitempty" copier:"JobState"` // @gotags: copier:"JobState" - Queue string `protobuf:"bytes,4,opt,name=queue,proto3" json:"queue,omitempty" copier:"Partition"` // @gotags: copier:"Partition" - User string `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty" copier:"UserId"` // @gotags: copier:"UserId" - NodeUsed string `protobuf:"bytes,6,opt,name=node_used,json=nodeUsed,proto3" json:"node_used,omitempty" copier:"ExcNodes"` // @gotags: copier:"ExcNodes" - ProcNumUsed int32 `protobuf:"varint,7,opt,name=proc_num_used,json=procNumUsed,proto3" json:"proc_num_used,omitempty" copier:"NumCpus"` // @gotags: copier:"NumCpus" - JobStartTime string `protobuf:"bytes,8,opt,name=job_start_time,json=jobStartTime,proto3" json:"job_start_time,omitempty" copier:"StartTime"` // @gotags: copier:"StartTime" - JobRunTime string `protobuf:"bytes,9,opt,name=job_run_time,json=jobRunTime,proto3" json:"job_run_time,omitempty" copier:"JobRunTime"` // @gotags: copier:"JobRunTime" - JobManagerId string `protobuf:"bytes,10,opt,name=job_manager_id,json=jobManagerId,proto3" json:"job_manager_id,omitempty" copier:"JobmanagerId"` // @gotags: copier:"JobmanagerId" - JobManagerName string `protobuf:"bytes,11,opt,name=job_manager_name,json=jobManagerName,proto3" json:"job_manager_name,omitempty" copier:"JobmanagerName"` // @gotags: copier:"JobmanagerName" - JobManagerType string `protobuf:"bytes,12,opt,name=job_manager_type,json=jobManagerType,proto3" json:"job_manager_type,omitempty" copier:"JobmanagerType"` // @gotags: copier:"JobmanagerType" - ErrorPath string `protobuf:"bytes,13,opt,name=error_path,json=errorPath,proto3" json:"error_path,omitempty" copier:"ErrorPath"` // @gotags: copier:"ErrorPath" - OutputPath string `protobuf:"bytes,14,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty" copier:"OutputPath"` // @gotags: copier:"OutputPath" - WorkDir string `protobuf:"bytes,15,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty" copier:"WorkDir"` // @gotags: copier:"WorkDir" - Reason string `protobuf:"bytes,16,opt,name=reason,proto3" json:"reason,omitempty" copier:"Reason"` // @gotags: copier:"Reason" - AppType string `protobuf:"bytes,17,opt,name=app_type,json=appType,proto3" json:"app_type,omitempty" copier:"AppType"` // @gotags: copier:"AppType" + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId" + JobName string `protobuf:"bytes,2,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` // @gotags: copier:"Name" + JobStatus string `protobuf:"bytes,3,opt,name=job_status,json=jobStatus,proto3" json:"job_status,omitempty"` // @gotags: copier:"JobState" + Queue string `protobuf:"bytes,4,opt,name=queue,proto3" json:"queue,omitempty"` // @gotags: copier:"Partition" + User string `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"UserId" + NodeUsed string `protobuf:"bytes,6,opt,name=node_used,json=nodeUsed,proto3" json:"node_used,omitempty"` // @gotags: copier:"ExcNodes" + ProcNumUsed int32 `protobuf:"varint,7,opt,name=proc_num_used,json=procNumUsed,proto3" json:"proc_num_used,omitempty"` // @gotags: copier:"NumCpus" + JobStartTime string `protobuf:"bytes,8,opt,name=job_start_time,json=jobStartTime,proto3" json:"job_start_time,omitempty"` // @gotags: copier:"StartTime" + JobRunTime string `protobuf:"bytes,9,opt,name=job_run_time,json=jobRunTime,proto3" json:"job_run_time,omitempty"` // @gotags: copier:"JobRunTime" + JobManagerId string `protobuf:"bytes,10,opt,name=job_manager_id,json=jobManagerId,proto3" json:"job_manager_id,omitempty"` // @gotags: copier:"JobmanagerId" + JobManagerName string `protobuf:"bytes,11,opt,name=job_manager_name,json=jobManagerName,proto3" json:"job_manager_name,omitempty"` // @gotags: copier:"JobmanagerName" + JobManagerType string `protobuf:"bytes,12,opt,name=job_manager_type,json=jobManagerType,proto3" json:"job_manager_type,omitempty"` // @gotags: copier:"JobmanagerType" + ErrorPath string `protobuf:"bytes,13,opt,name=error_path,json=errorPath,proto3" json:"error_path,omitempty"` // @gotags: copier:"ErrorPath" + OutputPath string `protobuf:"bytes,14,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"` // @gotags: copier:"OutputPath" + WorkDir string `protobuf:"bytes,15,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir" + Reason string `protobuf:"bytes,16,opt,name=reason,proto3" json:"reason,omitempty"` // @gotags: copier:"Reason" + AppType string `protobuf:"bytes,17,opt,name=app_type,json=appType,proto3" json:"app_type,omitempty"` // @gotags: copier:"AppType" } func (x *Job) Reset() { @@ -1687,10 +1687,10 @@ type ListJobResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - RecordCount uint32 `protobuf:"varint,3,opt,name=record_count,json=recordCount,proto3" json:"record_count,omitempty" copier:"RecordCount"` // @gotags: copier:"RecordCount" - Jobs []*Job `protobuf:"bytes,4,rep,name=jobs,proto3" json:"jobs,omitempty" copier:"Jobs"` // @gotags: copier:"Jobs" + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" + RecordCount uint32 `protobuf:"varint,3,opt,name=record_count,json=recordCount,proto3" json:"record_count,omitempty"` // @gotags: copier:"RecordCount" + Jobs []*Job `protobuf:"bytes,4,rep,name=jobs,proto3" json:"jobs,omitempty"` // @gotags: copier:"Jobs" } func (x *ListJobResp) Reset() { @@ -1753,32 +1753,31 @@ func (x *ListJobResp) GetJobs() []*Job { return nil } -// *****************History Job Start************************ -type HistoryJob struct { +type ListHistoryJobReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AcctTime string `protobuf:"bytes,1,opt,name=acct_time,json=acctTime,proto3" json:"acct_time,omitempty" copier:"AcctTime"` // @gotags: copier:"AcctTime" - AppType string `protobuf:"bytes,2,opt,name=app_type,json=appType,proto3" json:"app_type,omitempty" copier:"AppType"` // @gotags: copier:"AppType" - JobEndTime string `protobuf:"bytes,3,opt,name=job_end_time,json=jobEndTime,proto3" json:"job_end_time,omitempty" copier:"End"` // @gotags: copier:"End" - JobExecHost string `protobuf:"bytes,4,opt,name=job_exec_host,json=jobExecHost,proto3" json:"job_exec_host,omitempty" copier:"Nodes"` // @gotags: copier:"Nodes" - JobExitStatus int32 `protobuf:"varint,5,opt,name=job_exit_status,json=jobExitStatus,proto3" json:"job_exit_status,omitempty" copier:"ExitCode"` // @gotags: copier:"ExitCode" - JobId int64 `protobuf:"varint,6,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty" copier:"JobId"` // @gotags: copier:"JobId" - JobName string `protobuf:"bytes,7,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty" copier:"JobName"` // @gotags: copier:"JobName" - JobQueueTime string `protobuf:"bytes,8,opt,name=job_queue_time,json=jobQueueTime,proto3" json:"job_queue_time,omitempty" copier:"JobQueueTime"` // @gotags: copier:"JobQueueTime" - JobStartTime string `protobuf:"bytes,9,opt,name=job_start_time,json=jobStartTime,proto3" json:"job_start_time,omitempty" copier:"Start"` // @gotags: copier:"Start" - JobState string `protobuf:"bytes,10,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty" copier:"State"` // @gotags: copier:"State" - JobWalltimeUsed string `protobuf:"bytes,11,opt,name=job_walltime_used,json=jobWalltimeUsed,proto3" json:"job_walltime_used,omitempty" copier:"JobWalltimeUsed"` // @gotags: copier:"JobWalltimeUsed" - JobManagerId int64 `protobuf:"varint,12,opt,name=job_manager_id,json=jobManagerId,proto3" json:"job_manager_id,omitempty" copier:"JobManagerId"` // @gotags: copier:"JobManagerId" - NodeCt int32 `protobuf:"varint,13,opt,name=node_ct,json=nodeCt,proto3" json:"node_ct,omitempty" copier:"AllocNodes"` // @gotags: copier:"AllocNodes" - Queue string `protobuf:"bytes,14,opt,name=queue,proto3" json:"queue,omitempty" copier:"Partition"` // @gotags: copier:"Partition" - UserName string `protobuf:"bytes,15,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty" copier:"User"` // @gotags: copier:"User" - Workdir string `protobuf:"bytes,16,opt,name=workdir,proto3" json:"workdir,omitempty" copier:"WorkDir"` // @gotags: copier:"WorkDir" -} - -func (x *HistoryJob) Reset() { - *x = HistoryJob{} + StrClusterNameList string `protobuf:"bytes,1,opt,name=strClusterNameList,proto3" json:"strClusterNameList,omitempty"` // @gotags: copier:"StrClusterNameList" //调度器ID 示例:1638523853 + StartTime string `protobuf:"bytes,2,opt,name=startTime,proto3" json:"startTime,omitempty"` // @gotags: copier:"StartTime" //开始时间 示例:2021-11-23 01:01:01 + EndTime string `protobuf:"bytes,3,opt,name=endTime,proto3" json:"endTime,omitempty"` // @gotags: copier:"EndTime" //结束时间 示例:2021-12-23 01:01:01 + TimeType string `protobuf:"bytes,4,opt,name=timeType,proto3" json:"timeType,omitempty"` // @gotags: copier:"TimeType" //CUSTOM 示例:CUSTOM + Queue string `protobuf:"bytes,5,opt,name=queue,proto3" json:"queue,omitempty"` // @gotags: copier:"Queue" //队列名称 示例:debug + AppType string `protobuf:"bytes,6,opt,name=appType,proto3" json:"appType,omitempty"` // @gotags: copier:"AppType" //应用名称 示例:fluent + Sort string `protobuf:"bytes,7,opt,name=sort,proto3" json:"sort,omitempty"` // @gotags: copier:"Sort" //排序规则 示例:DESC/ASC + OrderBy string `protobuf:"bytes,8,opt,name=orderBy,proto3" json:"orderBy,omitempty"` // @gotags: copier:"OrderBy" //排序字段 示例:jobId + JobId string `protobuf:"bytes,9,opt,name=jobId,proto3" json:"jobId,omitempty"` // @gotags: copier:"JobId" //作业ID 示例:12 + JobState string `protobuf:"bytes,10,opt,name=jobState,proto3" json:"jobState,omitempty"` // @gotags: copier:"JobState" //'statR(运行)','statQ(排队)','statH(保留)','statS(挂起)','statE(退出)','statC(完成)','statW(等待)','statX(其他)' 示例:statQ + HostName string `protobuf:"bytes,11,opt,name=hostName,proto3" json:"hostName,omitempty"` // @gotags: copier:"HostName" //节点名称 示例:h04r3n07 + StrUser string `protobuf:"bytes,12,opt,name=strUser,proto3" json:"strUser,omitempty"` // @gotags: copier:"StrUser" //用户名称 示例:test + JobName string `protobuf:"bytes,13,opt,name=jobName,proto3" json:"jobName,omitempty"` // @gotags: copier:"JobName" //作业名称 示例:STDIN_1208_173644 + Start int32 `protobuf:"varint,14,opt,name=start,proto3" json:"start,omitempty"` // @gotags: copier:"Start" //起始坐标 示例:0 + Limit int32 `protobuf:"varint,15,opt,name=limit,proto3" json:"limit,omitempty"` // @gotags: copier:"Limit" //请求一次获取数据的数目 示例:25 + IsQueryByQueueTime string `protobuf:"bytes,16,opt,name=isQueryByQueueTime,proto3" json:"isQueryByQueueTime,omitempty"` // @gotags: copier:"IsQueryByQueueTime" //按照结束时间查询false/按照入队时间查询true(推荐false) 示例:false +} + +func (x *ListHistoryJobReq) Reset() { + *x = ListHistoryJobReq{} if protoimpl.UnsafeEnabled { mi := &file_hpcAC_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1786,13 +1785,13 @@ func (x *HistoryJob) Reset() { } } -func (x *HistoryJob) String() string { +func (x *ListHistoryJobReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HistoryJob) ProtoMessage() {} +func (*ListHistoryJobReq) ProtoMessage() {} -func (x *HistoryJob) ProtoReflect() protoreflect.Message { +func (x *ListHistoryJobReq) ProtoReflect() protoreflect.Message { mi := &file_hpcAC_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1804,138 +1803,135 @@ func (x *HistoryJob) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use HistoryJob.ProtoReflect.Descriptor instead. -func (*HistoryJob) Descriptor() ([]byte, []int) { +// Deprecated: Use ListHistoryJobReq.ProtoReflect.Descriptor instead. +func (*ListHistoryJobReq) Descriptor() ([]byte, []int) { return file_hpcAC_proto_rawDescGZIP(), []int{13} } -func (x *HistoryJob) GetAcctTime() string { +func (x *ListHistoryJobReq) GetStrClusterNameList() string { if x != nil { - return x.AcctTime + return x.StrClusterNameList } return "" } -func (x *HistoryJob) GetAppType() string { +func (x *ListHistoryJobReq) GetStartTime() string { if x != nil { - return x.AppType + return x.StartTime } return "" } -func (x *HistoryJob) GetJobEndTime() string { +func (x *ListHistoryJobReq) GetEndTime() string { if x != nil { - return x.JobEndTime + return x.EndTime } return "" } -func (x *HistoryJob) GetJobExecHost() string { +func (x *ListHistoryJobReq) GetTimeType() string { if x != nil { - return x.JobExecHost + return x.TimeType } return "" } -func (x *HistoryJob) GetJobExitStatus() int32 { +func (x *ListHistoryJobReq) GetQueue() string { if x != nil { - return x.JobExitStatus + return x.Queue } - return 0 + return "" } -func (x *HistoryJob) GetJobId() int64 { +func (x *ListHistoryJobReq) GetAppType() string { if x != nil { - return x.JobId + return x.AppType } - return 0 + return "" } -func (x *HistoryJob) GetJobName() string { +func (x *ListHistoryJobReq) GetSort() string { if x != nil { - return x.JobName + return x.Sort } return "" } -func (x *HistoryJob) GetJobQueueTime() string { +func (x *ListHistoryJobReq) GetOrderBy() string { if x != nil { - return x.JobQueueTime + return x.OrderBy } return "" } -func (x *HistoryJob) GetJobStartTime() string { +func (x *ListHistoryJobReq) GetJobId() string { if x != nil { - return x.JobStartTime + return x.JobId } return "" } -func (x *HistoryJob) GetJobState() string { +func (x *ListHistoryJobReq) GetJobState() string { if x != nil { return x.JobState } return "" } -func (x *HistoryJob) GetJobWalltimeUsed() string { +func (x *ListHistoryJobReq) GetHostName() string { if x != nil { - return x.JobWalltimeUsed + return x.HostName } return "" } -func (x *HistoryJob) GetJobManagerId() int64 { +func (x *ListHistoryJobReq) GetStrUser() string { if x != nil { - return x.JobManagerId + return x.StrUser } - return 0 + return "" } -func (x *HistoryJob) GetNodeCt() int32 { +func (x *ListHistoryJobReq) GetJobName() string { if x != nil { - return x.NodeCt + return x.JobName } - return 0 + return "" } -func (x *HistoryJob) GetQueue() string { +func (x *ListHistoryJobReq) GetStart() int32 { if x != nil { - return x.Queue + return x.Start } - return "" + return 0 } -func (x *HistoryJob) GetUserName() string { +func (x *ListHistoryJobReq) GetLimit() int32 { if x != nil { - return x.UserName + return x.Limit } - return "" + return 0 } -func (x *HistoryJob) GetWorkdir() string { +func (x *ListHistoryJobReq) GetIsQueryByQueueTime() string { if x != nil { - return x.Workdir + return x.IsQueryByQueueTime } return "" } -type ListHistoryJobReq struct { +type ListHistoryJobResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StartTime string `protobuf:"bytes,1,opt,name=startTime,proto3" json:"startTime,omitempty" copier:"StartTime"` // @gotags: copier:"StartTime" - EndTime string `protobuf:"bytes,2,opt,name=endTime,proto3" json:"endTime,omitempty" copier:"EndTime"` // @gotags: copier:"EndTime" - TimeType string `protobuf:"bytes,3,opt,name=timeType,proto3" json:"timeType,omitempty" copier:"TimeType"` // @gotags: copier:"TimeType" - Start int32 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty" copier:"Start"` // @gotags: copier:"Start" - Limit int32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty" copier:"Limit"` // @gotags: copier:"Limit" - IsQueryByQueueTime int32 `protobuf:"varint,6,opt,name=isQueryByQueueTime,proto3" json:"isQueryByQueueTime,omitempty" copier:"IsQueryByQueueTime"` // @gotags: copier:"IsQueryByQueueTime" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" + Data *HistoryJobData `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" } -func (x *ListHistoryJobReq) Reset() { - *x = ListHistoryJobReq{} +func (x *ListHistoryJobResp) Reset() { + *x = ListHistoryJobResp{} if protoimpl.UnsafeEnabled { mi := &file_hpcAC_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1943,13 +1939,13 @@ func (x *ListHistoryJobReq) Reset() { } } -func (x *ListHistoryJobReq) String() string { +func (x *ListHistoryJobResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListHistoryJobReq) ProtoMessage() {} +func (*ListHistoryJobResp) ProtoMessage() {} -func (x *ListHistoryJobReq) ProtoReflect() protoreflect.Message { +func (x *ListHistoryJobResp) ProtoReflect() protoreflect.Message { mi := &file_hpcAC_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1961,81 +1957,128 @@ func (x *ListHistoryJobReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListHistoryJobReq.ProtoReflect.Descriptor instead. -func (*ListHistoryJobReq) Descriptor() ([]byte, []int) { +// Deprecated: Use ListHistoryJobResp.ProtoReflect.Descriptor instead. +func (*ListHistoryJobResp) Descriptor() ([]byte, []int) { return file_hpcAC_proto_rawDescGZIP(), []int{14} } -func (x *ListHistoryJobReq) GetStartTime() string { +func (x *ListHistoryJobResp) GetCode() string { if x != nil { - return x.StartTime + return x.Code } return "" } -func (x *ListHistoryJobReq) GetEndTime() string { +func (x *ListHistoryJobResp) GetMsg() string { if x != nil { - return x.EndTime + return x.Msg } return "" } -func (x *ListHistoryJobReq) GetTimeType() string { +func (x *ListHistoryJobResp) GetData() *HistoryJobData { if x != nil { - return x.TimeType + return x.Data } - return "" + return nil } -func (x *ListHistoryJobReq) GetStart() int32 { - if x != nil { - return x.Start +type HistoryJobData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` // @gotags: copier:"Total" + List []*HistoryJobList `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"` // @gotags: copier:"List" +} + +func (x *HistoryJobData) Reset() { + *x = HistoryJobData{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *ListHistoryJobReq) GetLimit() int32 { +func (x *HistoryJobData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryJobData) ProtoMessage() {} + +func (x *HistoryJobData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryJobData.ProtoReflect.Descriptor instead. +func (*HistoryJobData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{15} +} + +func (x *HistoryJobData) GetTotal() int32 { if x != nil { - return x.Limit + return x.Total } return 0 } -func (x *ListHistoryJobReq) GetIsQueryByQueueTime() int32 { +func (x *HistoryJobData) GetList() []*HistoryJobList { if x != nil { - return x.IsQueryByQueueTime + return x.List } - return 0 + return nil } -type ListHistoryJobResp struct { +type HistoryJobList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - RecordCount uint32 `protobuf:"varint,3,opt,name=record_count,json=recordCount,proto3" json:"record_count,omitempty" copier:"RecordCount"` // @gotags: copier:"RecordCount" - HistoryJobs []*HistoryJob `protobuf:"bytes,4,rep,name=history_jobs,json=historyJobs,proto3" json:"history_jobs,omitempty" copier:"HistoryJobs"` // @gotags: copier:"HistoryJobs" -} - -func (x *ListHistoryJobResp) Reset() { - *x = ListHistoryJobResp{} + AcctTime string `protobuf:"bytes,1,opt,name=acctTime,proto3" json:"acctTime,omitempty"` // @gotags: copier:"AcctTime" //记账时间 示例:2021-11-04 18:07:12 + JobId string `protobuf:"bytes,2,opt,name=jobId,proto3" json:"jobId,omitempty"` // @gotags: copier:"JobId" //作业id 示例:12 + JobmanagerId int32 `protobuf:"varint,3,opt,name=jobmanagerId,proto3" json:"jobmanagerId,omitempty"` // @gotags: copier:"JobmanagerId" //区域id 示例:1638523853 + UserName string `protobuf:"bytes,4,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"UserName" //用户名 示例:haowj + JobName string `protobuf:"bytes,5,opt,name=jobName,proto3" json:"jobName,omitempty"` // @gotags: copier:"JobName" //作业名 示例:FLUENT_1104_181054 + Queue string `protobuf:"bytes,6,opt,name=queue,proto3" json:"queue,omitempty"` // @gotags: copier:"Queue" //队列名 示例:debug + JobQueueTime string `protobuf:"bytes,7,opt,name=jobQueueTime,proto3" json:"jobQueueTime,omitempty"` // @gotags: copier:"JobQueueTime" //作业入队列时间 示例:2021-11-04 17:57:34 + JobStartTime string `protobuf:"bytes,8,opt,name=jobStartTime,proto3" json:"jobStartTime,omitempty"` // @gotags: copier:"JobStartTime" //作业启动时间 示例:2021-11-04 17:57:34 + JobExecHost string `protobuf:"bytes,9,opt,name=jobExecHost,proto3" json:"jobExecHost,omitempty"` // @gotags: copier:"JobExecHost" //作业执行节点 示例:gv35New248 + Nodect int32 `protobuf:"varint,10,opt,name=nodect,proto3" json:"nodect,omitempty"` // @gotags: copier:"Nodect" //分配的节点数 示例:1 + JobEndTime string `protobuf:"bytes,11,opt,name=jobEndTime,proto3" json:"jobEndTime,omitempty"` // @gotags: copier:"JobEndTime" //作业结束时间 示例:2021-11-04 18:07:12 + JobWalltimeUsed string `protobuf:"bytes,12,opt,name=jobWalltimeUsed,proto3" json:"jobWalltimeUsed,omitempty"` // @gotags: copier:"JobWalltimeUsed" //作业实际使用的Walltime,单位为秒 示例:0.1606 + Workdir string `protobuf:"bytes,13,opt,name=workdir,proto3" json:"workdir,omitempty"` // @gotags: copier:"Workdir" //工作空间 示例:/public/home/haowj/00-HPC-CASE/FLUENT_1027_105403 + AppType string `protobuf:"bytes,14,opt,name=appType,proto3" json:"appType,omitempty"` // @gotags: copier:"AppType" //作业应用类型 示例:FLUENT + JobState string `protobuf:"bytes,15,opt,name=jobState,proto3" json:"jobState,omitempty"` // @gotags: copier:"JobState" //作业状态 示例:statC + JobExitStatus int32 `protobuf:"varint,16,opt,name=jobExitStatus,proto3" json:"jobExitStatus,omitempty"` // @gotags: copier:"JobExitStatus" //作业退出码 示例:0 + JobProcNum int32 `protobuf:"varint,17,opt,name=jobProcNum,proto3" json:"jobProcNum,omitempty"` // @gotags: copier:"JobProcNum" //作业CPU核数 示例:1 +} + +func (x *HistoryJobList) Reset() { + *x = HistoryJobList{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[15] + mi := &file_hpcAC_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListHistoryJobResp) String() string { +func (x *HistoryJobList) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListHistoryJobResp) ProtoMessage() {} +func (*HistoryJobList) ProtoMessage() {} -func (x *ListHistoryJobResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[15] +func (x *HistoryJobList) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2046,37 +2089,128 @@ func (x *ListHistoryJobResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListHistoryJobResp.ProtoReflect.Descriptor instead. -func (*ListHistoryJobResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{15} +// Deprecated: Use HistoryJobList.ProtoReflect.Descriptor instead. +func (*HistoryJobList) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{16} } -func (x *ListHistoryJobResp) GetCode() uint32 { +func (x *HistoryJobList) GetAcctTime() string { if x != nil { - return x.Code + return x.AcctTime + } + return "" +} + +func (x *HistoryJobList) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *HistoryJobList) GetJobmanagerId() int32 { + if x != nil { + return x.JobmanagerId } return 0 } -func (x *ListHistoryJobResp) GetMsg() string { +func (x *HistoryJobList) GetUserName() string { if x != nil { - return x.Msg + return x.UserName } return "" } -func (x *ListHistoryJobResp) GetRecordCount() uint32 { +func (x *HistoryJobList) GetJobName() string { if x != nil { - return x.RecordCount + return x.JobName + } + return "" +} + +func (x *HistoryJobList) GetQueue() string { + if x != nil { + return x.Queue + } + return "" +} + +func (x *HistoryJobList) GetJobQueueTime() string { + if x != nil { + return x.JobQueueTime + } + return "" +} + +func (x *HistoryJobList) GetJobStartTime() string { + if x != nil { + return x.JobStartTime + } + return "" +} + +func (x *HistoryJobList) GetJobExecHost() string { + if x != nil { + return x.JobExecHost + } + return "" +} + +func (x *HistoryJobList) GetNodect() int32 { + if x != nil { + return x.Nodect } return 0 } -func (x *ListHistoryJobResp) GetHistoryJobs() []*HistoryJob { +func (x *HistoryJobList) GetJobEndTime() string { if x != nil { - return x.HistoryJobs + return x.JobEndTime } - return nil + return "" +} + +func (x *HistoryJobList) GetJobWalltimeUsed() string { + if x != nil { + return x.JobWalltimeUsed + } + return "" +} + +func (x *HistoryJobList) GetWorkdir() string { + if x != nil { + return x.Workdir + } + return "" +} + +func (x *HistoryJobList) GetAppType() string { + if x != nil { + return x.AppType + } + return "" +} + +func (x *HistoryJobList) GetJobState() string { + if x != nil { + return x.JobState + } + return "" +} + +func (x *HistoryJobList) GetJobExitStatus() int32 { + if x != nil { + return x.JobExitStatus + } + return 0 +} + +func (x *HistoryJobList) GetJobProcNum() int32 { + if x != nil { + return x.JobProcNum + } + return 0 } // *****************Job(Submit) Start************************ @@ -2085,16 +2219,16 @@ type SubmitJobReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Apptype string `protobuf:"bytes,1,opt,name=apptype,proto3" json:"apptype,omitempty" copier:"Apptype"` // @gotags: copier:"Apptype" - Appname string `protobuf:"bytes,2,opt,name=appname,proto3" json:"appname,omitempty" copier:"Appname"` // @gotags: copier:"Appname" - StrJobManagerID int64 `protobuf:"varint,3,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty" copier:"StrJobManagerID"` // @gotags: copier:"StrJobManagerID" - MapAppJobInfo *MapAppJobInfo `protobuf:"bytes,4,opt,name=mapAppJobInfo,proto3" json:"mapAppJobInfo,omitempty" copier:"MapAppJobInfo"` // @gotags: copier:"MapAppJobInfo" + Apptype string `protobuf:"bytes,1,opt,name=apptype,proto3" json:"apptype,omitempty"` // @gotags: copier:"Apptype" + Appname string `protobuf:"bytes,2,opt,name=appname,proto3" json:"appname,omitempty"` // @gotags: copier:"Appname" + StrJobManagerID int64 `protobuf:"varint,3,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty"` // @gotags: copier:"StrJobManagerID" + MapAppJobInfo *MapAppJobInfo `protobuf:"bytes,4,opt,name=mapAppJobInfo,proto3" json:"mapAppJobInfo,omitempty"` // @gotags: copier:"MapAppJobInfo" } func (x *SubmitJobReq) Reset() { *x = SubmitJobReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[16] + mi := &file_hpcAC_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2107,7 +2241,7 @@ func (x *SubmitJobReq) String() string { func (*SubmitJobReq) ProtoMessage() {} func (x *SubmitJobReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[16] + mi := &file_hpcAC_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2120,7 +2254,7 @@ func (x *SubmitJobReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitJobReq.ProtoReflect.Descriptor instead. func (*SubmitJobReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{16} + return file_hpcAC_proto_rawDescGZIP(), []int{17} } func (x *SubmitJobReq) GetApptype() string { @@ -2156,15 +2290,15 @@ type SubmitJobResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data string `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty" copier:"Data"` // @gotags: copier:"Data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data string `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` // @gotags: copier:"Data" } func (x *SubmitJobResp) Reset() { *x = SubmitJobResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[17] + mi := &file_hpcAC_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2177,7 +2311,7 @@ func (x *SubmitJobResp) String() string { func (*SubmitJobResp) ProtoMessage() {} func (x *SubmitJobResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[17] + mi := &file_hpcAC_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2190,7 +2324,7 @@ func (x *SubmitJobResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitJobResp.ProtoReflect.Descriptor instead. func (*SubmitJobResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{17} + return file_hpcAC_proto_rawDescGZIP(), []int{18} } func (x *SubmitJobResp) GetCode() string { @@ -2219,30 +2353,30 @@ type MapAppJobInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GAP_CMD_FILE string `protobuf:"bytes,1,opt,name=GAP_CMD_FILE,json=GAPCMDFILE,proto3" json:"GAP_CMD_FILE,omitempty" copier:"GAP_CMD_FILE"` // @gotags: copier:"GAP_CMD_FILE" //命令行内容 - GAP_NNODE string `protobuf:"bytes,2,opt,name=GAP_NNODE,json=GAPNNODE,proto3" json:"GAP_NNODE,omitempty" copier:"GAP_NNODE"` // @gotags: copier:"GAP_NNODE" //节点个数(当指定该参数时,GAP_NODE_STRING必须为"") - GAP_NODE_STRING string `protobuf:"bytes,3,opt,name=GAP_NODE_STRING,json=GAPNODESTRING,proto3" json:"GAP_NODE_STRING,omitempty" copier:"GAP_NODE_STRING"` // @gotags: copier:"GAP_NODE_STRING" //指定节点(当指定该参数时,GAP_NNODE必须为"") - GAP_SUBMIT_TYPE string `protobuf:"bytes,4,opt,name=GAP_SUBMIT_TYPE,json=GAPSUBMITTYPE,proto3" json:"GAP_SUBMIT_TYPE,omitempty" copier:"GAP_SUBMIT_TYPE"` // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式) - GAP_JOB_NAME string `protobuf:"bytes,5,opt,name=GAP_JOB_NAME,json=GAPJOBNAME,proto3" json:"GAP_JOB_NAME,omitempty" copier:"GAP_JOB_NAME"` // @gotags: copier:"GAP_JOB_NAME" //作业名称 - GAP_WORK_DIR string `protobuf:"bytes,6,opt,name=GAP_WORK_DIR,json=GAPWORKDIR,proto3" json:"GAP_WORK_DIR,omitempty" copier:"GAP_WORK_DIR"` // @gotags: copier:"GAP_WORK_DIR" //工作路径 - GAP_QUEUE string `protobuf:"bytes,7,opt,name=GAP_QUEUE,json=GAPQUEUE,proto3" json:"GAP_QUEUE,omitempty" copier:"GAP_QUEUE"` // @gotags: copier:"GAP_QUEUE" //队列名称 - GAP_NPROC string `protobuf:"bytes,8,opt,name=GAP_NPROC,json=GAPNPROC,proto3" json:"GAP_NPROC,omitempty" copier:"GAP_NPROC"` // @gotags: copier:"GAP_NPROC" //总核心数(GAP_NPROC和GAP_PPN选其一填写) - GAP_PPN string `protobuf:"bytes,9,opt,name=GAP_PPN,json=GAPPPN,proto3" json:"GAP_PPN,omitempty" copier:"GAP_PPN"` // @gotags: copier:"GAP_PPN" //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写) - GAP_NGPU string `protobuf:"bytes,10,opt,name=GAP_NGPU,json=GAPNGPU,proto3" json:"GAP_NGPU,omitempty" copier:"GAP_NGPU"` // @gotags: copier:"GAP_NGPU" //GPU卡数/节点 - GAP_NDCU string `protobuf:"bytes,11,opt,name=GAP_NDCU,json=GAPNDCU,proto3" json:"GAP_NDCU,omitempty" copier:"GAP_NDCU"` // @gotags: copier:"GAP_NDCU" //DCU卡数/节点 - GAP_JOB_MEM string `protobuf:"bytes,12,opt,name=GAP_JOB_MEM,json=GAPJOBMEM,proto3" json:"GAP_JOB_MEM,omitempty" copier:"GAP_JOB_MEM"` // @gotags: copier:"GAP_JOB_MEM" //每个节点内存值,单位为MB/GB - GAP_WALL_TIME string `protobuf:"bytes,13,opt,name=GAP_WALL_TIME,json=GAPWALLTIME,proto3" json:"GAP_WALL_TIME,omitempty" copier:"GAP_WALL_TIME"` // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss) - GAP_EXCLUSIVE string `protobuf:"bytes,14,opt,name=GAP_EXCLUSIVE,json=GAPEXCLUSIVE,proto3" json:"GAP_EXCLUSIVE,omitempty" copier:"GAP_EXCLUSIVE"` // @gotags: copier:"GAP_EXCLUSIVE" // 是否独占节点,1为独占,空为非独占 - GAP_APPNAME string `protobuf:"bytes,15,opt,name=GAP_APPNAME,json=GAPAPPNAME,proto3" json:"GAP_APPNAME,omitempty" copier:"GAP_APPNAME"` // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称 - GAP_MULTI_SUB string `protobuf:"bytes,16,opt,name=GAP_MULTI_SUB,json=GAPMULTISUB,proto3" json:"GAP_MULTI_SUB,omitempty" copier:"GAP_MULTI_SUB"` // @gotags: copier:"GAP_MULTI_SUB" //作业组长度,建议为小于等于50的正整数 - GAP_STD_OUT_FILE string `protobuf:"bytes,17,opt,name=GAP_STD_OUT_FILE,json=GAPSTDOUTFILE,proto3" json:"GAP_STD_OUT_FILE,omitempty" copier:"GAP_STD_OUT_FILE"` // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j - GAP_STD_ERR_FILE string `protobuf:"bytes,18,opt,name=GAP_STD_ERR_FILE,json=GAPSTDERRFILE,proto3" json:"GAP_STD_ERR_FILE,omitempty" copier:"GAP_STD_ERR_FILE"` // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j + GAP_CMD_FILE string `protobuf:"bytes,1,opt,name=GAP_CMD_FILE,json=GAPCMDFILE,proto3" json:"GAP_CMD_FILE,omitempty"` // @gotags: copier:"GAP_CMD_FILE" //命令行内容 + GAP_NNODE string `protobuf:"bytes,2,opt,name=GAP_NNODE,json=GAPNNODE,proto3" json:"GAP_NNODE,omitempty"` // @gotags: copier:"GAP_NNODE" //节点个数(当指定该参数时,GAP_NODE_STRING必须为"") + GAP_NODE_STRING string `protobuf:"bytes,3,opt,name=GAP_NODE_STRING,json=GAPNODESTRING,proto3" json:"GAP_NODE_STRING,omitempty"` // @gotags: copier:"GAP_NODE_STRING" //指定节点(当指定该参数时,GAP_NNODE必须为"") + GAP_SUBMIT_TYPE string `protobuf:"bytes,4,opt,name=GAP_SUBMIT_TYPE,json=GAPSUBMITTYPE,proto3" json:"GAP_SUBMIT_TYPE,omitempty"` // @gotags: copier:"GAP_SUBMIT_TYPE" //cmd(命令行模式) + GAP_JOB_NAME string `protobuf:"bytes,5,opt,name=GAP_JOB_NAME,json=GAPJOBNAME,proto3" json:"GAP_JOB_NAME,omitempty"` // @gotags: copier:"GAP_JOB_NAME" //作业名称 + GAP_WORK_DIR string `protobuf:"bytes,6,opt,name=GAP_WORK_DIR,json=GAPWORKDIR,proto3" json:"GAP_WORK_DIR,omitempty"` // @gotags: copier:"GAP_WORK_DIR" //工作路径 + GAP_QUEUE string `protobuf:"bytes,7,opt,name=GAP_QUEUE,json=GAPQUEUE,proto3" json:"GAP_QUEUE,omitempty"` // @gotags: copier:"GAP_QUEUE" //队列名称 + GAP_NPROC string `protobuf:"bytes,8,opt,name=GAP_NPROC,json=GAPNPROC,proto3" json:"GAP_NPROC,omitempty"` // @gotags: copier:"GAP_NPROC" //总核心数(GAP_NPROC和GAP_PPN选其一填写) + GAP_PPN string `protobuf:"bytes,9,opt,name=GAP_PPN,json=GAPPPN,proto3" json:"GAP_PPN,omitempty"` // @gotags: copier:"GAP_PPN" //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写) + GAP_NGPU string `protobuf:"bytes,10,opt,name=GAP_NGPU,json=GAPNGPU,proto3" json:"GAP_NGPU,omitempty"` // @gotags: copier:"GAP_NGPU" //GPU卡数/节点 + GAP_NDCU string `protobuf:"bytes,11,opt,name=GAP_NDCU,json=GAPNDCU,proto3" json:"GAP_NDCU,omitempty"` // @gotags: copier:"GAP_NDCU" //DCU卡数/节点 + GAP_JOB_MEM string `protobuf:"bytes,12,opt,name=GAP_JOB_MEM,json=GAPJOBMEM,proto3" json:"GAP_JOB_MEM,omitempty"` // @gotags: copier:"GAP_JOB_MEM" //每个节点内存值,单位为MB/GB + GAP_WALL_TIME string `protobuf:"bytes,13,opt,name=GAP_WALL_TIME,json=GAPWALLTIME,proto3" json:"GAP_WALL_TIME,omitempty"` // @gotags: copier:"GAP_WALL_TIME" //最大运行时长(HH:MM:ss) + GAP_EXCLUSIVE string `protobuf:"bytes,14,opt,name=GAP_EXCLUSIVE,json=GAPEXCLUSIVE,proto3" json:"GAP_EXCLUSIVE,omitempty"` // @gotags: copier:"GAP_EXCLUSIVE" // 是否独占节点,1为独占,空为非独占 + GAP_APPNAME string `protobuf:"bytes,15,opt,name=GAP_APPNAME,json=GAPAPPNAME,proto3" json:"GAP_APPNAME,omitempty"` // @gotags: copier:"GAP_APPNAME" //BASE(基础应用),支持填写具体的应用英文名称 + GAP_MULTI_SUB string `protobuf:"bytes,16,opt,name=GAP_MULTI_SUB,json=GAPMULTISUB,proto3" json:"GAP_MULTI_SUB,omitempty"` // @gotags: copier:"GAP_MULTI_SUB" //作业组长度,建议为小于等于50的正整数 + GAP_STD_OUT_FILE string `protobuf:"bytes,17,opt,name=GAP_STD_OUT_FILE,json=GAPSTDOUTFILE,proto3" json:"GAP_STD_OUT_FILE,omitempty"` // @gotags: copier:"GAP_STD_OUT_FILE" //工作路径/std.out.%j + GAP_STD_ERR_FILE string `protobuf:"bytes,18,opt,name=GAP_STD_ERR_FILE,json=GAPSTDERRFILE,proto3" json:"GAP_STD_ERR_FILE,omitempty"` // @gotags: copier:"GAP_STD_ERR_FILE" //工作路径/std.err.%j } func (x *MapAppJobInfo) Reset() { *x = MapAppJobInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[18] + mi := &file_hpcAC_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2255,7 +2389,7 @@ func (x *MapAppJobInfo) String() string { func (*MapAppJobInfo) ProtoMessage() {} func (x *MapAppJobInfo) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[18] + mi := &file_hpcAC_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2268,7 +2402,7 @@ func (x *MapAppJobInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MapAppJobInfo.ProtoReflect.Descriptor instead. func (*MapAppJobInfo) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{18} + return file_hpcAC_proto_rawDescGZIP(), []int{19} } func (x *MapAppJobInfo) GetGAP_CMD_FILE() string { @@ -2402,13 +2536,13 @@ type ParaStorQuotaReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty" copier:"username"` // @gotags: copier:"username" + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" } func (x *ParaStorQuotaReq) Reset() { *x = ParaStorQuotaReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[19] + mi := &file_hpcAC_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2421,7 +2555,7 @@ func (x *ParaStorQuotaReq) String() string { func (*ParaStorQuotaReq) ProtoMessage() {} func (x *ParaStorQuotaReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[19] + mi := &file_hpcAC_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2434,7 +2568,7 @@ func (x *ParaStorQuotaReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParaStorQuotaReq.ProtoReflect.Descriptor instead. func (*ParaStorQuotaReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{19} + return file_hpcAC_proto_rawDescGZIP(), []int{20} } func (x *ParaStorQuotaReq) GetUsername() string { @@ -2449,15 +2583,15 @@ type ParaStorQuotaResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data []*QuotaData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*QuotaData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" } func (x *ParaStorQuotaResp) Reset() { *x = ParaStorQuotaResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[20] + mi := &file_hpcAC_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2470,7 +2604,7 @@ func (x *ParaStorQuotaResp) String() string { func (*ParaStorQuotaResp) ProtoMessage() {} func (x *ParaStorQuotaResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[20] + mi := &file_hpcAC_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2483,7 +2617,7 @@ func (x *ParaStorQuotaResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParaStorQuotaResp.ProtoReflect.Descriptor instead. func (*ParaStorQuotaResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{20} + return file_hpcAC_proto_rawDescGZIP(), []int{21} } func (x *ParaStorQuotaResp) GetCode() string { @@ -2512,16 +2646,16 @@ type QuotaData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty" copier:"username"` // @gotags: copier:"username" //用户名 - Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty" copier:"path"` // @gotags: copier:"path" //共享存储配额路径 - Threshold float64 `protobuf:"fixed64,3,opt,name=threshold,proto3" json:"threshold,omitempty" copier:"threshold"` // @gotags: copier:"threshold" //共享存储配额量,单位GB - Usage float64 `protobuf:"fixed64,4,opt,name=usage,proto3" json:"usage,omitempty" copier:"usage"` // @gotags: copier:"usage" //共享存储使用量,单位GB + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" //用户名 + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` // @gotags: copier:"path" //共享存储配额路径 + Threshold float64 `protobuf:"fixed64,3,opt,name=threshold,proto3" json:"threshold,omitempty"` // @gotags: copier:"threshold" //共享存储配额量,单位GB + Usage float64 `protobuf:"fixed64,4,opt,name=usage,proto3" json:"usage,omitempty"` // @gotags: copier:"usage" //共享存储使用量,单位GB } func (x *QuotaData) Reset() { *x = QuotaData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[21] + mi := &file_hpcAC_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2534,7 +2668,7 @@ func (x *QuotaData) String() string { func (*QuotaData) ProtoMessage() {} func (x *QuotaData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[21] + mi := &file_hpcAC_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2547,7 +2681,7 @@ func (x *QuotaData) ProtoReflect() protoreflect.Message { // Deprecated: Use QuotaData.ProtoReflect.Descriptor instead. func (*QuotaData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{21} + return file_hpcAC_proto_rawDescGZIP(), []int{22} } func (x *QuotaData) GetUsername() string { @@ -2583,13 +2717,13 @@ type WallTimeReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty" copier:"username"` // @gotags: copier:"username" + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" } func (x *WallTimeReq) Reset() { *x = WallTimeReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[22] + mi := &file_hpcAC_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2602,7 +2736,7 @@ func (x *WallTimeReq) String() string { func (*WallTimeReq) ProtoMessage() {} func (x *WallTimeReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[22] + mi := &file_hpcAC_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2615,7 +2749,7 @@ func (x *WallTimeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WallTimeReq.ProtoReflect.Descriptor instead. func (*WallTimeReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{22} + return file_hpcAC_proto_rawDescGZIP(), []int{23} } func (x *WallTimeReq) GetUsername() string { @@ -2630,15 +2764,15 @@ type WallTimeResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data float64 `protobuf:"fixed64,3,opt,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data float64 `protobuf:"fixed64,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" } func (x *WallTimeResp) Reset() { *x = WallTimeResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[23] + mi := &file_hpcAC_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2651,7 +2785,7 @@ func (x *WallTimeResp) String() string { func (*WallTimeResp) ProtoMessage() {} func (x *WallTimeResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[23] + mi := &file_hpcAC_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2664,7 +2798,7 @@ func (x *WallTimeResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WallTimeResp.ProtoReflect.Descriptor instead. func (*WallTimeResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{23} + return file_hpcAC_proto_rawDescGZIP(), []int{24} } func (x *WallTimeResp) GetCode() string { @@ -2693,13 +2827,13 @@ type QueueJobsReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty" copier:"userName"` //@gotags: copier:"userName" + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` //@gotags: copier:"userName" } func (x *QueueJobsReq) Reset() { *x = QueueJobsReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[24] + mi := &file_hpcAC_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2712,7 +2846,7 @@ func (x *QueueJobsReq) String() string { func (*QueueJobsReq) ProtoMessage() {} func (x *QueueJobsReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[24] + mi := &file_hpcAC_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2725,7 +2859,7 @@ func (x *QueueJobsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueJobsReq.ProtoReflect.Descriptor instead. func (*QueueJobsReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{24} + return file_hpcAC_proto_rawDescGZIP(), []int{25} } func (x *QueueJobsReq) GetUserName() string { @@ -2740,15 +2874,15 @@ type QueueJobsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data []*Queue `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*Queue `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" } func (x *QueueJobsResp) Reset() { *x = QueueJobsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[25] + mi := &file_hpcAC_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2761,7 +2895,7 @@ func (x *QueueJobsResp) String() string { func (*QueueJobsResp) ProtoMessage() {} func (x *QueueJobsResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[25] + mi := &file_hpcAC_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2774,7 +2908,7 @@ func (x *QueueJobsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueJobsResp.ProtoReflect.Descriptor instead. func (*QueueJobsResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{25} + return file_hpcAC_proto_rawDescGZIP(), []int{26} } func (x *QueueJobsResp) GetCode() string { @@ -2803,14 +2937,14 @@ type Queue struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" copier:"name"` // @gotags: copier:"name" - Values []*Metric `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty" copier:"values"` // @gotags: copier:"values" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Values []*Metric `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` // @gotags: copier:"values" } func (x *Queue) Reset() { *x = Queue{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[26] + mi := &file_hpcAC_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2823,7 +2957,7 @@ func (x *Queue) String() string { func (*Queue) ProtoMessage() {} func (x *Queue) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[26] + mi := &file_hpcAC_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2836,7 +2970,7 @@ func (x *Queue) ProtoReflect() protoreflect.Message { // Deprecated: Use Queue.ProtoReflect.Descriptor instead. func (*Queue) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{26} + return file_hpcAC_proto_rawDescGZIP(), []int{27} } func (x *Queue) GetName() string { @@ -2858,14 +2992,14 @@ type Metric struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MetricName string `protobuf:"bytes,1,opt,name=metricName,proto3" json:"metricName,omitempty" copier:"metricName"` // @gotags: copier:"metricName" - MetricValue string `protobuf:"bytes,2,opt,name=metricValue,proto3" json:"metricValue,omitempty" copier:"metricValue"` // @gotags: copier:"metricValue" + MetricName string `protobuf:"bytes,1,opt,name=metricName,proto3" json:"metricName,omitempty"` // @gotags: copier:"metricName" + MetricValue string `protobuf:"bytes,2,opt,name=metricValue,proto3" json:"metricValue,omitempty"` // @gotags: copier:"metricValue" } func (x *Metric) Reset() { *x = Metric{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[27] + mi := &file_hpcAC_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2878,7 +3012,7 @@ func (x *Metric) String() string { func (*Metric) ProtoMessage() {} func (x *Metric) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[27] + mi := &file_hpcAC_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2891,7 +3025,7 @@ func (x *Metric) ProtoReflect() protoreflect.Message { // Deprecated: Use Metric.ProtoReflect.Descriptor instead. func (*Metric) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{27} + return file_hpcAC_proto_rawDescGZIP(), []int{28} } func (x *Metric) GetMetricName() string { @@ -2917,7 +3051,7 @@ type CpuCoreReq struct { func (x *CpuCoreReq) Reset() { *x = CpuCoreReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[28] + mi := &file_hpcAC_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2930,7 +3064,7 @@ func (x *CpuCoreReq) String() string { func (*CpuCoreReq) ProtoMessage() {} func (x *CpuCoreReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[28] + mi := &file_hpcAC_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2943,7 +3077,7 @@ func (x *CpuCoreReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CpuCoreReq.ProtoReflect.Descriptor instead. func (*CpuCoreReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{28} + return file_hpcAC_proto_rawDescGZIP(), []int{29} } type CpuCoreResp struct { @@ -2951,15 +3085,15 @@ type CpuCoreResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data []*CpuCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"data"` // @gotags: copier:"data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*CpuCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"data" } func (x *CpuCoreResp) Reset() { *x = CpuCoreResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[29] + mi := &file_hpcAC_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2972,7 +3106,7 @@ func (x *CpuCoreResp) String() string { func (*CpuCoreResp) ProtoMessage() {} func (x *CpuCoreResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[29] + mi := &file_hpcAC_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2985,7 +3119,7 @@ func (x *CpuCoreResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CpuCoreResp.ProtoReflect.Descriptor instead. func (*CpuCoreResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{29} + return file_hpcAC_proto_rawDescGZIP(), []int{30} } func (x *CpuCoreResp) GetCode() string { @@ -3014,14 +3148,14 @@ type CpuCore struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" copier:"name"` // @gotags: copier:"name" - Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty" copier:"y"` // @gotags: copier:"y" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"` // @gotags: copier:"y" } func (x *CpuCore) Reset() { *x = CpuCore{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[30] + mi := &file_hpcAC_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3034,7 +3168,7 @@ func (x *CpuCore) String() string { func (*CpuCore) ProtoMessage() {} func (x *CpuCore) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[30] + mi := &file_hpcAC_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3047,7 +3181,7 @@ func (x *CpuCore) ProtoReflect() protoreflect.Message { // Deprecated: Use CpuCore.ProtoReflect.Descriptor instead. func (*CpuCore) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{30} + return file_hpcAC_proto_rawDescGZIP(), []int{31} } func (x *CpuCore) GetName() string { @@ -3069,13 +3203,13 @@ type JobsReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty" copier:"userName"` // @gotags: copier:"userName" + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"userName" } func (x *JobsReq) Reset() { *x = JobsReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[31] + mi := &file_hpcAC_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3088,7 +3222,7 @@ func (x *JobsReq) String() string { func (*JobsReq) ProtoMessage() {} func (x *JobsReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[31] + mi := &file_hpcAC_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3101,7 +3235,7 @@ func (x *JobsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use JobsReq.ProtoReflect.Descriptor instead. func (*JobsReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{31} + return file_hpcAC_proto_rawDescGZIP(), []int{32} } func (x *JobsReq) GetUserName() string { @@ -3116,15 +3250,15 @@ type JobsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty" copier:"Code"` // @gotags: copier:"Code" - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" - Data []*JobCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"data"` // @gotags: copier:"data" + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*JobCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"data" } func (x *JobsResp) Reset() { *x = JobsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[32] + mi := &file_hpcAC_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3137,7 +3271,7 @@ func (x *JobsResp) String() string { func (*JobsResp) ProtoMessage() {} func (x *JobsResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[32] + mi := &file_hpcAC_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3150,7 +3284,7 @@ func (x *JobsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use JobsResp.ProtoReflect.Descriptor instead. func (*JobsResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{32} + return file_hpcAC_proto_rawDescGZIP(), []int{33} } func (x *JobsResp) GetCode() string { @@ -3179,14 +3313,14 @@ type JobCore struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" copier:"name"` // @gotags: copier:"name" - Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty" copier:"y"` // @gotags: copier:"y" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"` // @gotags: copier:"y" } func (x *JobCore) Reset() { *x = JobCore{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[33] + mi := &file_hpcAC_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3199,7 +3333,7 @@ func (x *JobCore) String() string { func (*JobCore) ProtoMessage() {} func (x *JobCore) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[33] + mi := &file_hpcAC_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3212,7 +3346,7 @@ func (x *JobCore) ProtoReflect() protoreflect.Message { // Deprecated: Use JobCore.ProtoReflect.Descriptor instead. func (*JobCore) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{33} + return file_hpcAC_proto_rawDescGZIP(), []int{34} } func (x *JobCore) GetName() string { @@ -3242,7 +3376,7 @@ type HistoryJobDetailReq struct { func (x *HistoryJobDetailReq) Reset() { *x = HistoryJobDetailReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[34] + mi := &file_hpcAC_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3255,7 +3389,7 @@ func (x *HistoryJobDetailReq) String() string { func (*HistoryJobDetailReq) ProtoMessage() {} func (x *HistoryJobDetailReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[34] + mi := &file_hpcAC_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3268,7 +3402,7 @@ func (x *HistoryJobDetailReq) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryJobDetailReq.ProtoReflect.Descriptor instead. func (*HistoryJobDetailReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{34} + return file_hpcAC_proto_rawDescGZIP(), []int{35} } func (x *HistoryJobDetailReq) GetJobId() string { @@ -3297,7 +3431,7 @@ type HistoryJobDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AcctTime string `protobuf:"bytes,1,opt,name=acctTime,proto3" json:"acctTime,omitempty" copier:"acctTime"` // @gotags: copier:"acctTime" + AcctTime string `protobuf:"bytes,1,opt,name=acctTime,proto3" json:"acctTime,omitempty"` // @gotags: copier:"acctTime" AppType string `protobuf:"bytes,2,opt,name=appType,proto3" json:"appType,omitempty"` Command string `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"` CommandExist string `protobuf:"bytes,4,opt,name=commandExist,proto3" json:"commandExist,omitempty"` @@ -3361,7 +3495,7 @@ type HistoryJobDetail struct { func (x *HistoryJobDetail) Reset() { *x = HistoryJobDetail{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[35] + mi := &file_hpcAC_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3374,7 +3508,7 @@ func (x *HistoryJobDetail) String() string { func (*HistoryJobDetail) ProtoMessage() {} func (x *HistoryJobDetail) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[35] + mi := &file_hpcAC_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3387,7 +3521,7 @@ func (x *HistoryJobDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryJobDetail.ProtoReflect.Descriptor instead. func (*HistoryJobDetail) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{35} + return file_hpcAC_proto_rawDescGZIP(), []int{36} } func (x *HistoryJobDetail) GetAcctTime() string { @@ -3816,7 +3950,7 @@ type HistoryJobDetailResp struct { func (x *HistoryJobDetailResp) Reset() { *x = HistoryJobDetailResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[36] + mi := &file_hpcAC_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3829,7 +3963,7 @@ func (x *HistoryJobDetailResp) String() string { func (*HistoryJobDetailResp) ProtoMessage() {} func (x *HistoryJobDetailResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[36] + mi := &file_hpcAC_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3842,7 +3976,7 @@ func (x *HistoryJobDetailResp) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryJobDetailResp.ProtoReflect.Descriptor instead. func (*HistoryJobDetailResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{36} + return file_hpcAC_proto_rawDescGZIP(), []int{37} } func (x *HistoryJobDetailResp) GetCode() string { @@ -3871,15 +4005,15 @@ type FileContentResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" //信息 示例:success - Data *FileDataResp `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" //对象数据 + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data *FileDataResp `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //对象数据 } func (x *FileContentResp) Reset() { *x = FileContentResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[37] + mi := &file_hpcAC_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3892,7 +4026,7 @@ func (x *FileContentResp) String() string { func (*FileContentResp) ProtoMessage() {} func (x *FileContentResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[37] + mi := &file_hpcAC_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3905,7 +4039,7 @@ func (x *FileContentResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FileContentResp.ProtoReflect.Descriptor instead. func (*FileContentResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{37} + return file_hpcAC_proto_rawDescGZIP(), []int{38} } func (x *FileContentResp) GetCode() string { @@ -3934,16 +4068,16 @@ type FileDataReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HostName string `protobuf:"bytes,1,opt,name=hostName,proto3" json:"hostName,omitempty" copier:"HostName"` // @gotags: copier:"HostName" //服务器hostname 示例:127.0.0.1 - DirPath string `protobuf:"bytes,2,opt,name=dirPath,proto3" json:"dirPath,omitempty" copier:"DirPath"` // @gotags: copier:"DirPath" //服务器文件绝对路径 示例:/public/home/test/BASE/STDIN_1210_114429/std.out.22 - TriggerNum int32 `protobuf:"varint,3,opt,name=triggerNum,proto3" json:"triggerNum,omitempty" copier:"TriggerNum"` // @gotags: copier:"TriggerNum" //翻页次数,第一次打开传1,文件每超过1000行,该参数累加1(类似分页,每页显示1000行数据) 示例:1 - RollDirection string `protobuf:"bytes,4,opt,name=rollDirection,proto3" json:"rollDirection,omitempty" copier:"RollDirection"` // @gotags: copier:"RollDirection" //文件查看方向,传参UP,从文件尾向上看;传参DOWN,从文件头向下看 示例:UP + HostName string `protobuf:"bytes,1,opt,name=hostName,proto3" json:"hostName,omitempty"` // @gotags: copier:"HostName" //服务器hostname 示例:127.0.0.1 + DirPath string `protobuf:"bytes,2,opt,name=dirPath,proto3" json:"dirPath,omitempty"` // @gotags: copier:"DirPath" //服务器文件绝对路径 示例:/public/home/test/BASE/STDIN_1210_114429/std.out.22 + TriggerNum int32 `protobuf:"varint,3,opt,name=triggerNum,proto3" json:"triggerNum,omitempty"` // @gotags: copier:"TriggerNum" //翻页次数,第一次打开传1,文件每超过1000行,该参数累加1(类似分页,每页显示1000行数据) 示例:1 + RollDirection string `protobuf:"bytes,4,opt,name=rollDirection,proto3" json:"rollDirection,omitempty"` // @gotags: copier:"RollDirection" //文件查看方向,传参UP,从文件尾向上看;传参DOWN,从文件头向下看 示例:UP } func (x *FileDataReq) Reset() { *x = FileDataReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[38] + mi := &file_hpcAC_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3956,7 +4090,7 @@ func (x *FileDataReq) String() string { func (*FileDataReq) ProtoMessage() {} func (x *FileDataReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[38] + mi := &file_hpcAC_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3969,7 +4103,7 @@ func (x *FileDataReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FileDataReq.ProtoReflect.Descriptor instead. func (*FileDataReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{38} + return file_hpcAC_proto_rawDescGZIP(), []int{39} } func (x *FileDataReq) GetHostName() string { @@ -4005,17 +4139,17 @@ type FileDataResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AllLineTotal int32 `protobuf:"varint,1,opt,name=allLineTotal,proto3" json:"allLineTotal,omitempty" copier:"AllLineTotal"` // @gotags: copier:"AllLineTotal" //文件总行数 示例:100 - Success string `protobuf:"bytes,2,opt,name=success,proto3" json:"success,omitempty" copier:"Success"` // @gotags: copier:"Success" //请求是否成功 示例:true - TotalTriggerTimes int32 `protobuf:"varint,3,opt,name=totalTriggerTimes,proto3" json:"totalTriggerTimes,omitempty" copier:"TotalTriggerTimes"` // @gotags: copier:"TotalTriggerTimes" //总次数(类似分页总页数) 示例:1 - Errmsg string `protobuf:"bytes,4,opt,name=errmsg,proto3" json:"errmsg,omitempty" copier:"Errmsg"` // @gotags: copier:"Errmsg" //错误信息 示例:false - Data string `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" //返回的文件内容 示例:start time is: 2021-10-14 + AllLineTotal int32 `protobuf:"varint,1,opt,name=allLineTotal,proto3" json:"allLineTotal,omitempty"` // @gotags: copier:"AllLineTotal" //文件总行数 示例:100 + Success string `protobuf:"bytes,2,opt,name=success,proto3" json:"success,omitempty"` // @gotags: copier:"Success" //请求是否成功 示例:true + TotalTriggerTimes int32 `protobuf:"varint,3,opt,name=totalTriggerTimes,proto3" json:"totalTriggerTimes,omitempty"` // @gotags: copier:"TotalTriggerTimes" //总次数(类似分页总页数) 示例:1 + Errmsg string `protobuf:"bytes,4,opt,name=errmsg,proto3" json:"errmsg,omitempty"` // @gotags: copier:"Errmsg" //错误信息 示例:false + Data string `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //返回的文件内容 示例:start time is: 2021-10-14 } func (x *FileDataResp) Reset() { *x = FileDataResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[39] + mi := &file_hpcAC_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4028,7 +4162,7 @@ func (x *FileDataResp) String() string { func (*FileDataResp) ProtoMessage() {} func (x *FileDataResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[39] + mi := &file_hpcAC_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4041,7 +4175,7 @@ func (x *FileDataResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FileDataResp.ProtoReflect.Descriptor instead. func (*FileDataResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{39} + return file_hpcAC_proto_rawDescGZIP(), []int{40} } func (x *FileDataResp) GetAllLineTotal() int32 { @@ -4084,14 +4218,14 @@ type QueueReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty" copier:"User"` // @gotags: copier:"User" //用户 示例:test - StrJobManagerID string `protobuf:"bytes,2,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty" copier:"StrJobManagerID"` // @gotags: copier:"StrJobManagerID" //调度器ID 示例:1626190154 + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User" //用户 示例:test + StrJobManagerID string `protobuf:"bytes,2,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty"` // @gotags: copier:"StrJobManagerID" //调度器ID 示例:1626190154 } func (x *QueueReq) Reset() { *x = QueueReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[40] + mi := &file_hpcAC_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4104,7 +4238,7 @@ func (x *QueueReq) String() string { func (*QueueReq) ProtoMessage() {} func (x *QueueReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[40] + mi := &file_hpcAC_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4117,7 +4251,7 @@ func (x *QueueReq) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueReq.ProtoReflect.Descriptor instead. func (*QueueReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{40} + return file_hpcAC_proto_rawDescGZIP(), []int{41} } func (x *QueueReq) GetUser() string { @@ -4139,15 +4273,15 @@ type QueueResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" //信息 示例:success - Data []*QueueData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data []*QueueData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 } func (x *QueueResp) Reset() { *x = QueueResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[41] + mi := &file_hpcAC_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4160,7 +4294,7 @@ func (x *QueueResp) String() string { func (*QueueResp) ProtoMessage() {} func (x *QueueResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[41] + mi := &file_hpcAC_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4173,7 +4307,7 @@ func (x *QueueResp) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueResp.ProtoReflect.Descriptor instead. func (*QueueResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{41} + return file_hpcAC_proto_rawDescGZIP(), []int{42} } func (x *QueueResp) GetCode() string { @@ -4202,29 +4336,29 @@ type QueueData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AclHosts string `protobuf:"bytes,1,opt,name=aclHosts,proto3" json:"aclHosts,omitempty" copier:"aclHosts"` // @gotags: copier:"aclHosts" //可用节点,多个节点用逗号隔开 示例:node1,node2 - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty" copier:"id"` // @gotags: copier:"id" //队列名称 示例:debug - Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty" copier:"text"` // @gotags: copier:"text" //队列名称 示例:debug - QueNodes string `protobuf:"bytes,4,opt,name=queNodes,proto3" json:"queNodes,omitempty" copier:"queNodes"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 - QueMinNodect string `protobuf:"bytes,5,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty" copier:"queMinNodect"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 - QueMaxNgpus string `protobuf:"bytes,6,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty" copier:"queMaxNgpus"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 - QueMaxPPN string `protobuf:"bytes,7,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty" copier:"queMaxPPN"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 - QueChargeRate string `protobuf:"bytes,8,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty" copier:"queChargeRate"` // @gotags: copier:"queChargeRate" //费率 示例:1 - QueMaxNcpus string `protobuf:"bytes,9,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty" copier:"queMaxNcpus"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 - QueMaxNdcus string `protobuf:"bytes,10,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty" copier:"queMaxNdcus"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 - QueueName string `protobuf:"bytes,11,opt,name=queueName,proto3" json:"queueName,omitempty" copier:"queueName"` // @gotags: copier:"queueName" //队列名称 示例:debug - QueMinNcpus string `protobuf:"bytes,12,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty" copier:"queMinNcpus"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 - QueFreeNodes string `protobuf:"bytes,13,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty" copier:"queFreeNodes"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 - QueMaxNodect string `protobuf:"bytes,14,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty" copier:"queMaxNodect"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 - QueMaxGpuPN string `protobuf:"bytes,15,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty" copier:"queMaxGpuPN"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 - QueMaxWalltime string `protobuf:"bytes,16,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty" copier:"queMaxWalltime"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit - QueMaxDcuPN string `protobuf:"bytes,17,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty" copier:"queMaxDcuPN"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 + AclHosts string `protobuf:"bytes,1,opt,name=aclHosts,proto3" json:"aclHosts,omitempty"` // @gotags: copier:"aclHosts" //可用节点,多个节点用逗号隔开 示例:node1,node2 + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"id" //队列名称 示例:debug + Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` // @gotags: copier:"text" //队列名称 示例:debug + QueNodes string `protobuf:"bytes,4,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 + QueMinNodect string `protobuf:"bytes,5,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 + QueMaxNgpus string `protobuf:"bytes,6,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 + QueMaxPPN string `protobuf:"bytes,7,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 + QueChargeRate string `protobuf:"bytes,8,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 + QueMaxNcpus string `protobuf:"bytes,9,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 + QueMaxNdcus string `protobuf:"bytes,10,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 + QueueName string `protobuf:"bytes,11,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug + QueMinNcpus string `protobuf:"bytes,12,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 + QueFreeNodes string `protobuf:"bytes,13,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 + QueMaxNodect string `protobuf:"bytes,14,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 + QueMaxGpuPN string `protobuf:"bytes,15,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 + QueMaxWalltime string `protobuf:"bytes,16,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit + QueMaxDcuPN string `protobuf:"bytes,17,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 } func (x *QueueData) Reset() { *x = QueueData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[42] + mi := &file_hpcAC_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4237,7 +4371,7 @@ func (x *QueueData) String() string { func (*QueueData) ProtoMessage() {} func (x *QueueData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[42] + mi := &file_hpcAC_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4250,7 +4384,7 @@ func (x *QueueData) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueData.ProtoReflect.Descriptor instead. func (*QueueData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{42} + return file_hpcAC_proto_rawDescGZIP(), []int{43} } func (x *QueueData) GetAclHosts() string { @@ -4377,15 +4511,15 @@ type QueueDetailsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" //信息 示例:success - Data []*QueueDetailsData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data []*QueueDetailsData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 } func (x *QueueDetailsResp) Reset() { *x = QueueDetailsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[43] + mi := &file_hpcAC_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4398,7 +4532,7 @@ func (x *QueueDetailsResp) String() string { func (*QueueDetailsResp) ProtoMessage() {} func (x *QueueDetailsResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[43] + mi := &file_hpcAC_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4411,7 +4545,7 @@ func (x *QueueDetailsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueDetailsResp.ProtoReflect.Descriptor instead. func (*QueueDetailsResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{43} + return file_hpcAC_proto_rawDescGZIP(), []int{44} } func (x *QueueDetailsResp) GetCode() string { @@ -4440,26 +4574,26 @@ type QueueDetailsData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - QueNodes int32 `protobuf:"varint,1,opt,name=queNodes,proto3" json:"queNodes,omitempty" copier:"queNodes"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 - QueMinNodect int32 `protobuf:"varint,2,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty" copier:"queMinNodect"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 - QueMaxNgpus int32 `protobuf:"varint,3,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty" copier:"queMaxNgpus"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 - QueMaxPPN int32 `protobuf:"varint,4,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty" copier:"queMaxPPN"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 - QueChargeRate float32 `protobuf:"fixed32,5,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty" copier:"queChargeRate"` // @gotags: copier:"queChargeRate" //费率 示例:1 - QueMaxNcpus int32 `protobuf:"varint,6,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty" copier:"queMaxNcpus"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 - QueMaxNdcus int32 `protobuf:"varint,7,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty" copier:"queMaxNdcus"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 - QueueName string `protobuf:"bytes,8,opt,name=queueName,proto3" json:"queueName,omitempty" copier:"queueName"` // @gotags: copier:"queueName" //队列名称 示例:debug - QueMinNcpus int32 `protobuf:"varint,9,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty" copier:"queMinNcpus"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 - QueFreeNodes int32 `protobuf:"varint,10,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty" copier:"queFreeNodes"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 - QueMaxNodect int32 `protobuf:"varint,11,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty" copier:"queMaxNodect"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 - QueMaxGpuPN int32 `protobuf:"varint,12,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty" copier:"queMaxGpuPN"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 - QueMaxWalltime int32 `protobuf:"varint,13,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty" copier:"queMaxWalltime"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit - QueMaxDcuPN int32 `protobuf:"varint,14,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty" copier:"queMaxDcuPN"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 + QueNodes int32 `protobuf:"varint,1,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 + QueMinNodect int32 `protobuf:"varint,2,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 + QueMaxNgpus int32 `protobuf:"varint,3,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 + QueMaxPPN int32 `protobuf:"varint,4,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 + QueChargeRate float32 `protobuf:"fixed32,5,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 + QueMaxNcpus int32 `protobuf:"varint,6,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 + QueMaxNdcus int32 `protobuf:"varint,7,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 + QueueName string `protobuf:"bytes,8,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug + QueMinNcpus int32 `protobuf:"varint,9,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 + QueFreeNodes int32 `protobuf:"varint,10,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 + QueMaxNodect int32 `protobuf:"varint,11,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 + QueMaxGpuPN int32 `protobuf:"varint,12,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 + QueMaxWalltime int32 `protobuf:"varint,13,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit + QueMaxDcuPN int32 `protobuf:"varint,14,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 } func (x *QueueDetailsData) Reset() { *x = QueueDetailsData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[44] + mi := &file_hpcAC_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4472,7 +4606,7 @@ func (x *QueueDetailsData) String() string { func (*QueueDetailsData) ProtoMessage() {} func (x *QueueDetailsData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[44] + mi := &file_hpcAC_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4485,7 +4619,7 @@ func (x *QueueDetailsData) ProtoReflect() protoreflect.Message { // Deprecated: Use QueueDetailsData.ProtoReflect.Descriptor instead. func (*QueueDetailsData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{44} + return file_hpcAC_proto_rawDescGZIP(), []int{45} } func (x *QueueDetailsData) GetQueNodes() int32 { @@ -4591,15 +4725,15 @@ type UserQuotasLimitResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty" copier:"Code"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty" copier:"Msg"` // @gotags: copier:"Msg" //信息 示例:success - Data *UserQuotasLimitData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty" copier:"Data"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data *UserQuotasLimitData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 } func (x *UserQuotasLimitResp) Reset() { *x = UserQuotasLimitResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[45] + mi := &file_hpcAC_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4612,7 +4746,7 @@ func (x *UserQuotasLimitResp) String() string { func (*UserQuotasLimitResp) ProtoMessage() {} func (x *UserQuotasLimitResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[45] + mi := &file_hpcAC_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4625,7 +4759,7 @@ func (x *UserQuotasLimitResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UserQuotasLimitResp.ProtoReflect.Descriptor instead. func (*UserQuotasLimitResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{45} + return file_hpcAC_proto_rawDescGZIP(), []int{46} } func (x *UserQuotasLimitResp) GetCode() string { @@ -4654,33 +4788,33 @@ type UserQuotasLimitData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty" copier:"userName"` // @gotags: copier:"userName" //用户名称 - AccountName string `protobuf:"bytes,2,opt,name=accountName,proto3" json:"accountName,omitempty" copier:"accountName"` // @gotags: copier:"accountName" //用户所关联的默认的账号名 - UserMaxCpu int64 `protobuf:"varint,3,opt,name=userMaxCpu,proto3" json:"userMaxCpu,omitempty" copier:"userMaxCpu"` // @gotags: copier:"userMaxCpu" //用户最大CPU核数,单位:个,如果未做限制,则值为-1 - UserMaxDcu int64 `protobuf:"varint,4,opt,name=userMaxDcu,proto3" json:"userMaxDcu,omitempty" copier:"userMaxDcu"` // @gotags: copier:"userMaxDcu" //用户最大DCU卡数,单位:个,如果未做限制,则值为-1 - UserMaxGpu int64 `protobuf:"varint,5,opt,name=userMaxGpu,proto3" json:"userMaxGpu,omitempty" copier:"userMaxGpu"` // @gotags: copier:"userMaxGpu" //用户最大GPU卡数,单位:个,如果未做限制,则值为-1 - UserMaxMlu int64 `protobuf:"varint,6,opt,name=userMaxMlu,proto3" json:"userMaxMlu,omitempty" copier:"userMaxMlu"` // @gotags: copier:"userMaxMlu" //用户最大MLU卡数,单位:个,如果未做限制,则值为-1 - UserMaxMem int64 `protobuf:"varint,7,opt,name=userMaxMem,proto3" json:"userMaxMem,omitempty" copier:"userMaxMem"` // @gotags: copier:"userMaxMem" //用户最大内存,单位:m,如果未做限制,则值为-1 - UserMaxNode int64 `protobuf:"varint,8,opt,name=userMaxNode,proto3" json:"userMaxNode,omitempty" copier:"userMaxNode"` // @gotags: copier:"userMaxNode" //用户最大节点数,单位:个,如果未做限制,则值为-1 - UserMaxSubmitJob int64 `protobuf:"varint,9,opt,name=userMaxSubmitJob,proto3" json:"userMaxSubmitJob,omitempty" copier:"userMaxSubmitJob"` // @gotags: copier:"userMaxSubmitJob" //用户最大提交作业数,单位:个,如果未做限制,则值为-1 - UserMaxRunJob int64 `protobuf:"varint,10,opt,name=userMaxRunJob,proto3" json:"userMaxRunJob,omitempty" copier:"userMaxRunJob"` // @gotags: copier:"userMaxRunJob" //用户最大运行作业数,单位:个,如果未做限制,则值为-1 - AccountMaxCpu int64 `protobuf:"varint,11,opt,name=accountMaxCpu,proto3" json:"accountMaxCpu,omitempty" copier:"accountMaxCpu"` // @gotags: copier:"accountMaxCpu" //账户最大CPU核数,单位:个,如果未做限制,则值为-1 - AccountMaxDcu int64 `protobuf:"varint,12,opt,name=accountMaxDcu,proto3" json:"accountMaxDcu,omitempty" copier:"accountMaxDcu"` // @gotags: copier:"accountMaxDcu" //账户最大DCU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxGpu int64 `protobuf:"varint,13,opt,name=accountMaxGpu,proto3" json:"accountMaxGpu,omitempty" copier:"accountMaxGpu"` // @gotags: copier:"accountMaxGpu" //账户最大GPU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxMlu int64 `protobuf:"varint,14,opt,name=accountMaxMlu,proto3" json:"accountMaxMlu,omitempty" copier:"accountMaxMlu"` // @gotags: copier:"accountMaxMlu" //账户最大MLU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxMem int64 `protobuf:"varint,15,opt,name=accountMaxMem,proto3" json:"accountMaxMem,omitempty" copier:"accountMaxMem"` // @gotags: copier:"accountMaxMem" //账户最大内存,单位:m,如果未做限制,则值为-1 - AccountMaxNode int64 `protobuf:"varint,16,opt,name=accountMaxNode,proto3" json:"accountMaxNode,omitempty" copier:"accountMaxNode"` // @gotags: copier:"accountMaxNode" //账户最大节点数,单位:个,如果未做限制,则值为-1 - AccountMaxSubmitJob int64 `protobuf:"varint,17,opt,name=accountMaxSubmitJob,proto3" json:"accountMaxSubmitJob,omitempty" copier:"accountMaxSubmitJob"` // @gotags: copier:"accountMaxSubmitJob" //账户最大提交作业数,单位:个,如果未做限制,则值为-1 - AccountMaxRunJob int64 `protobuf:"varint,18,opt,name=accountMaxRunJob,proto3" json:"accountMaxRunJob,omitempty" copier:"accountMaxRunJob"` // @gotags: copier:"accountMaxRunJob" //账户最大运行作业数,单位:个,如果未做限制,则值为-1 - UserMinCpu int64 `protobuf:"varint,19,opt,name=userMinCpu,proto3" json:"userMinCpu,omitempty" copier:"userMinCpu"` // @gotags: copier:"userMinCpu" //用户最小CPU核数,单位:个,如果未做限制,则值为-1 - UserMinNode int64 `protobuf:"varint,20,opt,name=userMinNode,proto3" json:"userMinNode,omitempty" copier:"userMinNode"` // @gotags: copier:"userMinNode" //用户最小节点数,单位:个,如果未做限制,则值为-1 - MaxWallTime int64 `protobuf:"varint,21,opt,name=maxWallTime,proto3" json:"maxWallTime,omitempty" copier:"maxWallTime"` // @gotags: copier:"maxWallTime" //用户关联的glod账号的机时,机时单位:s,如果未做限制,则值为-1 + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"userName" //用户名称 + AccountName string `protobuf:"bytes,2,opt,name=accountName,proto3" json:"accountName,omitempty"` // @gotags: copier:"accountName" //用户所关联的默认的账号名 + UserMaxCpu int64 `protobuf:"varint,3,opt,name=userMaxCpu,proto3" json:"userMaxCpu,omitempty"` // @gotags: copier:"userMaxCpu" //用户最大CPU核数,单位:个,如果未做限制,则值为-1 + UserMaxDcu int64 `protobuf:"varint,4,opt,name=userMaxDcu,proto3" json:"userMaxDcu,omitempty"` // @gotags: copier:"userMaxDcu" //用户最大DCU卡数,单位:个,如果未做限制,则值为-1 + UserMaxGpu int64 `protobuf:"varint,5,opt,name=userMaxGpu,proto3" json:"userMaxGpu,omitempty"` // @gotags: copier:"userMaxGpu" //用户最大GPU卡数,单位:个,如果未做限制,则值为-1 + UserMaxMlu int64 `protobuf:"varint,6,opt,name=userMaxMlu,proto3" json:"userMaxMlu,omitempty"` // @gotags: copier:"userMaxMlu" //用户最大MLU卡数,单位:个,如果未做限制,则值为-1 + UserMaxMem int64 `protobuf:"varint,7,opt,name=userMaxMem,proto3" json:"userMaxMem,omitempty"` // @gotags: copier:"userMaxMem" //用户最大内存,单位:m,如果未做限制,则值为-1 + UserMaxNode int64 `protobuf:"varint,8,opt,name=userMaxNode,proto3" json:"userMaxNode,omitempty"` // @gotags: copier:"userMaxNode" //用户最大节点数,单位:个,如果未做限制,则值为-1 + UserMaxSubmitJob int64 `protobuf:"varint,9,opt,name=userMaxSubmitJob,proto3" json:"userMaxSubmitJob,omitempty"` // @gotags: copier:"userMaxSubmitJob" //用户最大提交作业数,单位:个,如果未做限制,则值为-1 + UserMaxRunJob int64 `protobuf:"varint,10,opt,name=userMaxRunJob,proto3" json:"userMaxRunJob,omitempty"` // @gotags: copier:"userMaxRunJob" //用户最大运行作业数,单位:个,如果未做限制,则值为-1 + AccountMaxCpu int64 `protobuf:"varint,11,opt,name=accountMaxCpu,proto3" json:"accountMaxCpu,omitempty"` // @gotags: copier:"accountMaxCpu" //账户最大CPU核数,单位:个,如果未做限制,则值为-1 + AccountMaxDcu int64 `protobuf:"varint,12,opt,name=accountMaxDcu,proto3" json:"accountMaxDcu,omitempty"` // @gotags: copier:"accountMaxDcu" //账户最大DCU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxGpu int64 `protobuf:"varint,13,opt,name=accountMaxGpu,proto3" json:"accountMaxGpu,omitempty"` // @gotags: copier:"accountMaxGpu" //账户最大GPU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxMlu int64 `protobuf:"varint,14,opt,name=accountMaxMlu,proto3" json:"accountMaxMlu,omitempty"` // @gotags: copier:"accountMaxMlu" //账户最大MLU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxMem int64 `protobuf:"varint,15,opt,name=accountMaxMem,proto3" json:"accountMaxMem,omitempty"` // @gotags: copier:"accountMaxMem" //账户最大内存,单位:m,如果未做限制,则值为-1 + AccountMaxNode int64 `protobuf:"varint,16,opt,name=accountMaxNode,proto3" json:"accountMaxNode,omitempty"` // @gotags: copier:"accountMaxNode" //账户最大节点数,单位:个,如果未做限制,则值为-1 + AccountMaxSubmitJob int64 `protobuf:"varint,17,opt,name=accountMaxSubmitJob,proto3" json:"accountMaxSubmitJob,omitempty"` // @gotags: copier:"accountMaxSubmitJob" //账户最大提交作业数,单位:个,如果未做限制,则值为-1 + AccountMaxRunJob int64 `protobuf:"varint,18,opt,name=accountMaxRunJob,proto3" json:"accountMaxRunJob,omitempty"` // @gotags: copier:"accountMaxRunJob" //账户最大运行作业数,单位:个,如果未做限制,则值为-1 + UserMinCpu int64 `protobuf:"varint,19,opt,name=userMinCpu,proto3" json:"userMinCpu,omitempty"` // @gotags: copier:"userMinCpu" //用户最小CPU核数,单位:个,如果未做限制,则值为-1 + UserMinNode int64 `protobuf:"varint,20,opt,name=userMinNode,proto3" json:"userMinNode,omitempty"` // @gotags: copier:"userMinNode" //用户最小节点数,单位:个,如果未做限制,则值为-1 + MaxWallTime int64 `protobuf:"varint,21,opt,name=maxWallTime,proto3" json:"maxWallTime,omitempty"` // @gotags: copier:"maxWallTime" //用户关联的glod账号的机时,机时单位:s,如果未做限制,则值为-1 } func (x *UserQuotasLimitData) Reset() { *x = UserQuotasLimitData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[46] + mi := &file_hpcAC_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4693,7 +4827,7 @@ func (x *UserQuotasLimitData) String() string { func (*UserQuotasLimitData) ProtoMessage() {} func (x *UserQuotasLimitData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[46] + mi := &file_hpcAC_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4706,7 +4840,7 @@ func (x *UserQuotasLimitData) ProtoReflect() protoreflect.Message { // Deprecated: Use UserQuotasLimitData.ProtoReflect.Descriptor instead. func (*UserQuotasLimitData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{46} + return file_hpcAC_proto_rawDescGZIP(), []int{47} } func (x *UserQuotasLimitData) GetUserName() string { @@ -5043,7 +5177,7 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x6e, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x6e, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x09, 0x0a, 0x09, 0x4a, 0x6f, + 0x52, 0x07, 0x76, 0x6e, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x92, 0x09, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x02, 0x20, @@ -5077,641 +5211,661 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, 0x6f, 0x62, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x6a, 0x6f, - 0x62, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, - 0x56, 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, - 0x6a, 0x6f, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, - 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, - 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x55, - 0x73, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, - 0x72, 0x65, 0x71, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, - 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, - 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, - 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, - 0x71, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, - 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, - 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, - 0x71, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, - 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, - 0x25, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, - 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x37, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, - 0x62, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x22, - 0xa2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x04, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x63, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, - 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x6a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x85, - 0x04, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x0a, - 0x09, 0x61, 0x63, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, - 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6a, - 0x6f, 0x62, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, - 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, - 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, - 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, - 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, - 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, - 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, - 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0c, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, - 0x62, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, - 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, - 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x49, 0x0a, - 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, 0x61, 0x70, - 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, - 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, 0x0a, 0x09, - 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x49, 0x4e, - 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, - 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, - 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, - 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, 0x1b, 0x0a, - 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, - 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, - 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, 0x5f, 0x50, - 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, 0x50, 0x4e, - 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, 0x08, 0x47, - 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, - 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x41, 0x50, - 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x41, - 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, - 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x47, 0x41, - 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x12, - 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, - 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x53, 0x55, - 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x27, 0x0a, - 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, 0x49, 0x4c, - 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, - 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x22, 0x2e, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, - 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, - 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6f, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x57, 0x61, 0x6c, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x0c, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, - 0x0c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x42, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x25, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, - 0x22, 0x57, 0x0a, 0x0b, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, - 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, 0x43, 0x70, 0x75, - 0x43, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x01, 0x79, 0x22, 0x25, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, - 0x08, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x79, - 0x22, 0x6b, 0x0a, 0x13, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x22, 0x0a, - 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x0f, - 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x24, - 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x55, - 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x63, 0x75, 0x43, - 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x63, - 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, - 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0c, 0x64, 0x63, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x70, 0x75, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x63, - 0x79, 0x43, 0x70, 0x75, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, - 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, - 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, - 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, - 0x48, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, - 0x65, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, - 0x64, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x70, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x67, 0x70, 0x75, 0x55, - 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, - 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, 0x6f, 0x62, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x69, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, 0x6f, 0x62, 0x12, 0x1e, 0x0a, 0x0a, - 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, - 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, - 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x47, 0x70, 0x75, 0x4e, 0x75, - 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x47, 0x70, 0x75, 0x4e, - 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x4d, - 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, - 0x62, 0x4d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, - 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x63, 0x4e, - 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x43, 0x70, 0x75, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, - 0x71, 0x43, 0x70, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x44, 0x63, - 0x75, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x44, - 0x63, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x47, 0x70, 0x75, 0x18, - 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x47, 0x70, 0x75, - 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x6d, 0x18, 0x26, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x6d, 0x12, 0x20, - 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x27, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, - 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, - 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x6a, 0x6f, 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, - 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, - 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, - 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, - 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x2f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x64, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x31, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, - 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x6d, 0x18, 0x36, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x39, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, - 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, - 0x6b, 0x64, 0x69, 0x72, 0x22, 0x69, 0x0a, 0x14, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x60, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, - 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x89, 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x64, 0x69, 0x72, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x64, 0x69, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, - 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, - 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x11, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x48, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, - 0x22, 0x57, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa9, 0x04, 0x0a, 0x09, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x6c, 0x48, 0x6f, - 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x6c, 0x48, 0x6f, - 0x73, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, - 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, - 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, - 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, - 0x4d, 0x61, 0x78, 0x50, 0x50, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, - 0x65, 0x4d, 0x61, 0x78, 0x50, 0x50, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, - 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x65, - 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, - 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x12, 0x26, 0x0a, 0x0e, 0x71, - 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, - 0x50, 0x4e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, - 0x44, 0x63, 0x75, 0x50, 0x4e, 0x22, 0x65, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x6a, 0x6f, 0x62, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x56, + 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6a, + 0x6f, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, + 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, + 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x75, + 0x73, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x55, 0x73, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, + 0x65, 0x71, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, + 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, + 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, + 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, + 0x55, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x71, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, + 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, 0x25, + 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x15, + 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x37, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x22, 0xa2, + 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, + 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x91, 0x04, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, + 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, + 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, + 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, + 0x6b, 0x44, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, + 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x6a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0xd3, 0x03, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x73, 0x74, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 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, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x51, 0x0a, 0x0e, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x94, 0x04, + 0x0a, 0x0e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, + 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, + 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, + 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6a, + 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x63, 0x4e, + 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, + 0x63, 0x4e, 0x75, 0x6d, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, + 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, + 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, + 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, + 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, + 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, + 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, + 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, + 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, + 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, + 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, + 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, + 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, + 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, + 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, + 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, + 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, + 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, + 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, + 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, + 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, + 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, + 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, + 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, + 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, + 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x22, 0x2e, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x61, + 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x61, + 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6f, 0x0a, 0x09, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x57, 0x61, + 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x0c, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x2a, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x42, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x22, 0x57, 0x0a, 0x0b, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, + 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, 0x43, + 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x79, 0x22, 0x25, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x54, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, 0x65, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x01, 0x79, 0x22, 0x6b, 0x0a, 0x13, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, + 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xa4, 0x0f, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x4e, + 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x75, 0x72, + 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, + 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, + 0x65, 0x61, 0x72, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x55, 0x6e, 0x69, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x63, 0x70, + 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x63, + 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, + 0x64, 0x63, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x70, + 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, + 0x6e, 0x63, 0x79, 0x43, 0x70, 0x75, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x57, 0x61, 0x6c, 0x6c, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, + 0x6f, 0x75, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x70, 0x75, 0x43, 0x61, + 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, + 0x64, 0x53, 0x65, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x43, + 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x70, 0x75, 0x55, 0x6e, 0x69, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x67, 0x70, + 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, 0x6f, 0x62, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, 0x6f, 0x62, 0x12, 0x1e, + 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, 0x75, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x47, 0x70, 0x75, + 0x4e, 0x75, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x47, 0x70, + 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, + 0x62, 0x4d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x6a, 0x6f, 0x62, 0x4d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x6f, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x63, 0x4e, + 0x75, 0x6d, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x50, 0x72, 0x6f, + 0x63, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x43, 0x70, 0x75, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x43, 0x70, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, + 0x44, 0x63, 0x75, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x44, 0x63, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x47, 0x70, + 0x75, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x47, + 0x70, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x6d, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x29, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x6a, 0x6f, 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x2c, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, + 0x73, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, + 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, + 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x31, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x35, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x6d, 0x18, 0x36, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x6d, 0x12, 0x24, + 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, + 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x69, 0x0a, 0x14, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x60, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x89, 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x69, 0x72, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x64, 0x69, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, + 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xa6, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x4c, 0x69, 0x6e, 0x65, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2c, + 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x48, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x4a, + 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x57, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa9, 0x04, 0x0a, 0x09, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x6c, + 0x48, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x6c, + 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, + 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, + 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, + 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x50, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x50, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, + 0x63, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, + 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, + 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, + 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, + 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x12, 0x26, 0x0a, + 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, + 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, + 0x63, 0x75, 0x50, 0x4e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, + 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x22, 0x65, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, + 0x03, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, + 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, + 0x4e, 0x67, 0x70, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, + 0x50, 0x4e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, + 0x50, 0x50, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, + 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, + 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, + 0x6f, 0x64, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, + 0x70, 0x75, 0x50, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, + 0x61, 0x78, 0x47, 0x70, 0x75, 0x50, 0x4e, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, + 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, + 0x4e, 0x22, 0x6b, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8f, + 0x06, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x43, + 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x43, 0x70, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x44, + 0x63, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x44, 0x63, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x47, + 0x70, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x47, 0x70, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, + 0x6c, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x4d, 0x6c, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, + 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x4d, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, + 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, + 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, + 0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x52, 0x75, 0x6e, + 0x4a, 0x6f, 0x62, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4d, + 0x61, 0x78, 0x52, 0x75, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, 0x24, + 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, + 0x78, 0x44, 0x63, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, + 0x61, 0x78, 0x47, 0x70, 0x75, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x6c, 0x75, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x6c, 0x75, + 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, + 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x30, + 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, + 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x52, 0x75, + 0x6e, 0x4a, 0x6f, 0x62, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x52, 0x75, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x0a, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x0b, + 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x32, 0xc1, 0x07, 0x0a, 0x05, 0x68, 0x70, 0x63, 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, + 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x18, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, + 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x36, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0f, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, 0x03, 0x0a, - 0x10, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, - 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x63, - 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, 0x70, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x67, - 0x70, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x50, 0x4e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x50, 0x50, - 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x43, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, - 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, - 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, - 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x64, 0x63, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x4e, 0x63, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x71, - 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x63, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, - 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, - 0x50, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, - 0x47, 0x70, 0x75, 0x50, 0x4e, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, - 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x71, - 0x75, 0x65, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x50, 0x4e, 0x22, - 0x6b, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x06, 0x0a, - 0x13, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x43, - 0x70, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x44, - 0x63, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x47, - 0x70, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x6c, 0x75, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, - 0x6c, 0x75, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, - 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, - 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x52, 0x75, 0x6e, 0x4a, 0x6f, - 0x62, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x78, - 0x52, 0x75, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0d, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x44, 0x63, 0x75, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x44, - 0x63, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, - 0x47, 0x70, 0x75, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x47, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x6c, 0x75, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x6c, 0x75, 0x12, 0x24, - 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, - 0x78, 0x4d, 0x65, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, - 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x13, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x4a, 0x6f, 0x62, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x2a, - 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x52, 0x75, 0x6e, 0x4a, - 0x6f, 0x62, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4d, 0x61, 0x78, 0x52, 0x75, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xc1, - 0x07, 0x0a, 0x05, 0x68, 0x70, 0x63, 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x13, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x4c, 0x69, 0x73, - 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, - 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x0f, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x50, 0x61, 0x72, - 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, - 0x08, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, - 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x43, 0x70, - 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, - 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, - 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x0f, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x50, + 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x33, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, + 0x73, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, + 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, + 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5726,7 +5880,7 @@ func file_hpcAC_proto_rawDescGZIP() []byte { return file_hpcAC_proto_rawDescData } -var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_hpcAC_proto_goTypes = []interface{}{ (*JobManager)(nil), // 0: hpcAC.JobManager (*JobManagerReq)(nil), // 1: hpcAC.JobManagerReq @@ -5741,98 +5895,100 @@ var file_hpcAC_proto_goTypes = []interface{}{ (*Job)(nil), // 10: hpcAC.job (*ListJobReq)(nil), // 11: hpcAC.ListJobReq (*ListJobResp)(nil), // 12: hpcAC.ListJobResp - (*HistoryJob)(nil), // 13: hpcAC.historyJob - (*ListHistoryJobReq)(nil), // 14: hpcAC.ListHistoryJobReq - (*ListHistoryJobResp)(nil), // 15: hpcAC.ListHistoryJobResp - (*SubmitJobReq)(nil), // 16: hpcAC.SubmitJobReq - (*SubmitJobResp)(nil), // 17: hpcAC.SubmitJobResp - (*MapAppJobInfo)(nil), // 18: hpcAC.MapAppJobInfo - (*ParaStorQuotaReq)(nil), // 19: hpcAC.ParaStorQuotaReq - (*ParaStorQuotaResp)(nil), // 20: hpcAC.ParaStorQuotaResp - (*QuotaData)(nil), // 21: hpcAC.QuotaData - (*WallTimeReq)(nil), // 22: hpcAC.WallTimeReq - (*WallTimeResp)(nil), // 23: hpcAC.WallTimeResp - (*QueueJobsReq)(nil), // 24: hpcAC.QueueJobsReq - (*QueueJobsResp)(nil), // 25: hpcAC.QueueJobsResp - (*Queue)(nil), // 26: hpcAC.Queue - (*Metric)(nil), // 27: hpcAC.Metric - (*CpuCoreReq)(nil), // 28: hpcAC.CpuCoreReq - (*CpuCoreResp)(nil), // 29: hpcAC.CpuCoreResp - (*CpuCore)(nil), // 30: hpcAC.CpuCore - (*JobsReq)(nil), // 31: hpcAC.JobsReq - (*JobsResp)(nil), // 32: hpcAC.JobsResp - (*JobCore)(nil), // 33: hpcAC.JobCore - (*HistoryJobDetailReq)(nil), // 34: hpcAC.HistoryJobDetailReq - (*HistoryJobDetail)(nil), // 35: hpcAC.HistoryJobDetail - (*HistoryJobDetailResp)(nil), // 36: hpcAC.HistoryJobDetailResp - (*FileContentResp)(nil), // 37: hpcAC.FileContentResp - (*FileDataReq)(nil), // 38: hpcAC.FileDataReq - (*FileDataResp)(nil), // 39: hpcAC.FileDataResp - (*QueueReq)(nil), // 40: hpcAC.QueueReq - (*QueueResp)(nil), // 41: hpcAC.QueueResp - (*QueueData)(nil), // 42: hpcAC.QueueData - (*QueueDetailsResp)(nil), // 43: hpcAC.QueueDetailsResp - (*QueueDetailsData)(nil), // 44: hpcAC.QueueDetailsData - (*UserQuotasLimitResp)(nil), // 45: hpcAC.UserQuotasLimitResp - (*UserQuotasLimitData)(nil), // 46: hpcAC.UserQuotasLimitData - nil, // 47: hpcAC.DeleteJobResp.DataEntry + (*ListHistoryJobReq)(nil), // 13: hpcAC.ListHistoryJobReq + (*ListHistoryJobResp)(nil), // 14: hpcAC.ListHistoryJobResp + (*HistoryJobData)(nil), // 15: hpcAC.HistoryJobData + (*HistoryJobList)(nil), // 16: hpcAC.HistoryJobList + (*SubmitJobReq)(nil), // 17: hpcAC.SubmitJobReq + (*SubmitJobResp)(nil), // 18: hpcAC.SubmitJobResp + (*MapAppJobInfo)(nil), // 19: hpcAC.MapAppJobInfo + (*ParaStorQuotaReq)(nil), // 20: hpcAC.ParaStorQuotaReq + (*ParaStorQuotaResp)(nil), // 21: hpcAC.ParaStorQuotaResp + (*QuotaData)(nil), // 22: hpcAC.QuotaData + (*WallTimeReq)(nil), // 23: hpcAC.WallTimeReq + (*WallTimeResp)(nil), // 24: hpcAC.WallTimeResp + (*QueueJobsReq)(nil), // 25: hpcAC.QueueJobsReq + (*QueueJobsResp)(nil), // 26: hpcAC.QueueJobsResp + (*Queue)(nil), // 27: hpcAC.Queue + (*Metric)(nil), // 28: hpcAC.Metric + (*CpuCoreReq)(nil), // 29: hpcAC.CpuCoreReq + (*CpuCoreResp)(nil), // 30: hpcAC.CpuCoreResp + (*CpuCore)(nil), // 31: hpcAC.CpuCore + (*JobsReq)(nil), // 32: hpcAC.JobsReq + (*JobsResp)(nil), // 33: hpcAC.JobsResp + (*JobCore)(nil), // 34: hpcAC.JobCore + (*HistoryJobDetailReq)(nil), // 35: hpcAC.HistoryJobDetailReq + (*HistoryJobDetail)(nil), // 36: hpcAC.HistoryJobDetail + (*HistoryJobDetailResp)(nil), // 37: hpcAC.HistoryJobDetailResp + (*FileContentResp)(nil), // 38: hpcAC.FileContentResp + (*FileDataReq)(nil), // 39: hpcAC.FileDataReq + (*FileDataResp)(nil), // 40: hpcAC.FileDataResp + (*QueueReq)(nil), // 41: hpcAC.QueueReq + (*QueueResp)(nil), // 42: hpcAC.QueueResp + (*QueueData)(nil), // 43: hpcAC.QueueData + (*QueueDetailsResp)(nil), // 44: hpcAC.QueueDetailsResp + (*QueueDetailsData)(nil), // 45: hpcAC.QueueDetailsData + (*UserQuotasLimitResp)(nil), // 46: hpcAC.UserQuotasLimitResp + (*UserQuotasLimitData)(nil), // 47: hpcAC.UserQuotasLimitData + nil, // 48: hpcAC.DeleteJobResp.DataEntry } var file_hpcAC_proto_depIdxs = []int32{ 0, // 0: hpcAC.ListJobManagerResp.data:type_name -> hpcAC.JobManager 3, // 1: hpcAC.JobDetail.job_init_attr:type_name -> hpcAC.JobInitAttr 4, // 2: hpcAC.JobDetail.job_session_info:type_name -> hpcAC.JobVncSessionInfo 5, // 3: hpcAC.GetJobDetailResp.data:type_name -> hpcAC.JobDetail - 47, // 4: hpcAC.DeleteJobResp.data:type_name -> hpcAC.DeleteJobResp.DataEntry + 48, // 4: hpcAC.DeleteJobResp.data:type_name -> hpcAC.DeleteJobResp.DataEntry 10, // 5: hpcAC.ListJobResp.jobs:type_name -> hpcAC.job - 13, // 6: hpcAC.ListHistoryJobResp.history_jobs:type_name -> hpcAC.historyJob - 18, // 7: hpcAC.SubmitJobReq.mapAppJobInfo:type_name -> hpcAC.MapAppJobInfo - 21, // 8: hpcAC.ParaStorQuotaResp.data:type_name -> hpcAC.QuotaData - 26, // 9: hpcAC.QueueJobsResp.data:type_name -> hpcAC.Queue - 27, // 10: hpcAC.Queue.values:type_name -> hpcAC.Metric - 30, // 11: hpcAC.CpuCoreResp.data:type_name -> hpcAC.CpuCore - 33, // 12: hpcAC.JobsResp.data:type_name -> hpcAC.JobCore - 35, // 13: hpcAC.HistoryJobDetailResp.data:type_name -> hpcAC.HistoryJobDetail - 39, // 14: hpcAC.FileContentResp.data:type_name -> hpcAC.FileDataResp - 42, // 15: hpcAC.QueueResp.data:type_name -> hpcAC.QueueData - 44, // 16: hpcAC.QueueDetailsResp.data:type_name -> hpcAC.QueueDetailsData - 46, // 17: hpcAC.UserQuotasLimitResp.data:type_name -> hpcAC.UserQuotasLimitData - 11, // 18: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq - 14, // 19: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq - 16, // 20: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq - 1, // 21: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq - 6, // 22: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq - 8, // 23: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq - 38, // 24: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq - 40, // 25: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq - 40, // 26: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq - 40, // 27: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq - 19, // 28: hpcAC.hpcAC.ParaStorQuota:input_type -> hpcAC.ParaStorQuotaReq - 22, // 29: hpcAC.hpcAC.WallTime:input_type -> hpcAC.WallTimeReq - 24, // 30: hpcAC.hpcAC.QueueJobs:input_type -> hpcAC.QueueJobsReq - 28, // 31: hpcAC.hpcAC.CpuCore:input_type -> hpcAC.CpuCoreReq - 31, // 32: hpcAC.hpcAC.jobs:input_type -> hpcAC.JobsReq - 34, // 33: hpcAC.hpcAC.HistoryJobDetail:input_type -> hpcAC.HistoryJobDetailReq - 12, // 34: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp - 15, // 35: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp - 17, // 36: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp - 2, // 37: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp - 7, // 38: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp - 9, // 39: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp - 37, // 40: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp - 41, // 41: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp - 43, // 42: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp - 45, // 43: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp - 20, // 44: hpcAC.hpcAC.ParaStorQuota:output_type -> hpcAC.ParaStorQuotaResp - 23, // 45: hpcAC.hpcAC.WallTime:output_type -> hpcAC.WallTimeResp - 25, // 46: hpcAC.hpcAC.QueueJobs:output_type -> hpcAC.QueueJobsResp - 29, // 47: hpcAC.hpcAC.CpuCore:output_type -> hpcAC.CpuCoreResp - 32, // 48: hpcAC.hpcAC.jobs:output_type -> hpcAC.JobsResp - 36, // 49: hpcAC.hpcAC.HistoryJobDetail:output_type -> hpcAC.HistoryJobDetailResp - 34, // [34:50] is the sub-list for method output_type - 18, // [18:34] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 15, // 6: hpcAC.ListHistoryJobResp.data:type_name -> hpcAC.HistoryJobData + 16, // 7: hpcAC.HistoryJobData.list:type_name -> hpcAC.HistoryJobList + 19, // 8: hpcAC.SubmitJobReq.mapAppJobInfo:type_name -> hpcAC.MapAppJobInfo + 22, // 9: hpcAC.ParaStorQuotaResp.data:type_name -> hpcAC.QuotaData + 27, // 10: hpcAC.QueueJobsResp.data:type_name -> hpcAC.Queue + 28, // 11: hpcAC.Queue.values:type_name -> hpcAC.Metric + 31, // 12: hpcAC.CpuCoreResp.data:type_name -> hpcAC.CpuCore + 34, // 13: hpcAC.JobsResp.data:type_name -> hpcAC.JobCore + 36, // 14: hpcAC.HistoryJobDetailResp.data:type_name -> hpcAC.HistoryJobDetail + 40, // 15: hpcAC.FileContentResp.data:type_name -> hpcAC.FileDataResp + 43, // 16: hpcAC.QueueResp.data:type_name -> hpcAC.QueueData + 45, // 17: hpcAC.QueueDetailsResp.data:type_name -> hpcAC.QueueDetailsData + 47, // 18: hpcAC.UserQuotasLimitResp.data:type_name -> hpcAC.UserQuotasLimitData + 11, // 19: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq + 13, // 20: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq + 17, // 21: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq + 1, // 22: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq + 6, // 23: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq + 8, // 24: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq + 39, // 25: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq + 41, // 26: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq + 41, // 27: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq + 41, // 28: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq + 20, // 29: hpcAC.hpcAC.ParaStorQuota:input_type -> hpcAC.ParaStorQuotaReq + 23, // 30: hpcAC.hpcAC.WallTime:input_type -> hpcAC.WallTimeReq + 25, // 31: hpcAC.hpcAC.QueueJobs:input_type -> hpcAC.QueueJobsReq + 29, // 32: hpcAC.hpcAC.CpuCore:input_type -> hpcAC.CpuCoreReq + 32, // 33: hpcAC.hpcAC.jobs:input_type -> hpcAC.JobsReq + 35, // 34: hpcAC.hpcAC.HistoryJobDetail:input_type -> hpcAC.HistoryJobDetailReq + 12, // 35: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp + 14, // 36: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp + 18, // 37: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp + 2, // 38: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp + 7, // 39: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp + 9, // 40: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp + 38, // 41: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp + 42, // 42: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp + 44, // 43: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp + 46, // 44: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp + 21, // 45: hpcAC.hpcAC.ParaStorQuota:output_type -> hpcAC.ParaStorQuotaResp + 24, // 46: hpcAC.hpcAC.WallTime:output_type -> hpcAC.WallTimeResp + 26, // 47: hpcAC.hpcAC.QueueJobs:output_type -> hpcAC.QueueJobsResp + 30, // 48: hpcAC.hpcAC.CpuCore:output_type -> hpcAC.CpuCoreResp + 33, // 49: hpcAC.hpcAC.jobs:output_type -> hpcAC.JobsResp + 37, // 50: hpcAC.hpcAC.HistoryJobDetail:output_type -> hpcAC.HistoryJobDetailResp + 35, // [35:51] is the sub-list for method output_type + 19, // [19:35] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_hpcAC_proto_init() } @@ -5998,7 +6154,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryJob); i { + switch v := v.(*ListHistoryJobReq); i { case 0: return &v.state case 1: @@ -6010,7 +6166,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHistoryJobReq); i { + switch v := v.(*ListHistoryJobResp); i { case 0: return &v.state case 1: @@ -6022,7 +6178,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHistoryJobResp); i { + switch v := v.(*HistoryJobData); i { case 0: return &v.state case 1: @@ -6034,7 +6190,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitJobReq); i { + switch v := v.(*HistoryJobList); i { case 0: return &v.state case 1: @@ -6046,7 +6202,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitJobResp); i { + switch v := v.(*SubmitJobReq); i { case 0: return &v.state case 1: @@ -6058,7 +6214,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MapAppJobInfo); i { + switch v := v.(*SubmitJobResp); i { case 0: return &v.state case 1: @@ -6070,7 +6226,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParaStorQuotaReq); i { + switch v := v.(*MapAppJobInfo); i { case 0: return &v.state case 1: @@ -6082,7 +6238,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParaStorQuotaResp); i { + switch v := v.(*ParaStorQuotaReq); i { case 0: return &v.state case 1: @@ -6094,7 +6250,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuotaData); i { + switch v := v.(*ParaStorQuotaResp); i { case 0: return &v.state case 1: @@ -6106,7 +6262,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WallTimeReq); i { + switch v := v.(*QuotaData); i { case 0: return &v.state case 1: @@ -6118,7 +6274,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WallTimeResp); i { + switch v := v.(*WallTimeReq); i { case 0: return &v.state case 1: @@ -6130,7 +6286,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueJobsReq); i { + switch v := v.(*WallTimeResp); i { case 0: return &v.state case 1: @@ -6142,7 +6298,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueJobsResp); i { + switch v := v.(*QueueJobsReq); i { case 0: return &v.state case 1: @@ -6154,7 +6310,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Queue); i { + switch v := v.(*QueueJobsResp); i { case 0: return &v.state case 1: @@ -6166,7 +6322,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Metric); i { + switch v := v.(*Queue); i { case 0: return &v.state case 1: @@ -6178,7 +6334,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CpuCoreReq); i { + switch v := v.(*Metric); i { case 0: return &v.state case 1: @@ -6190,7 +6346,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CpuCoreResp); i { + switch v := v.(*CpuCoreReq); i { case 0: return &v.state case 1: @@ -6202,7 +6358,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CpuCore); i { + switch v := v.(*CpuCoreResp); i { case 0: return &v.state case 1: @@ -6214,7 +6370,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobsReq); i { + switch v := v.(*CpuCore); i { case 0: return &v.state case 1: @@ -6226,7 +6382,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobsResp); i { + switch v := v.(*JobsReq); i { case 0: return &v.state case 1: @@ -6238,7 +6394,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JobCore); i { + switch v := v.(*JobsResp); i { case 0: return &v.state case 1: @@ -6250,7 +6406,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryJobDetailReq); i { + switch v := v.(*JobCore); i { case 0: return &v.state case 1: @@ -6262,7 +6418,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryJobDetail); i { + switch v := v.(*HistoryJobDetailReq); i { case 0: return &v.state case 1: @@ -6274,7 +6430,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoryJobDetailResp); i { + switch v := v.(*HistoryJobDetail); i { case 0: return &v.state case 1: @@ -6286,7 +6442,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileContentResp); i { + switch v := v.(*HistoryJobDetailResp); i { case 0: return &v.state case 1: @@ -6298,7 +6454,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileDataReq); i { + switch v := v.(*FileContentResp); i { case 0: return &v.state case 1: @@ -6310,7 +6466,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileDataResp); i { + switch v := v.(*FileDataReq); i { case 0: return &v.state case 1: @@ -6322,7 +6478,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueReq); i { + switch v := v.(*FileDataResp); i { case 0: return &v.state case 1: @@ -6334,7 +6490,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueResp); i { + switch v := v.(*QueueReq); i { case 0: return &v.state case 1: @@ -6346,7 +6502,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueData); i { + switch v := v.(*QueueResp); i { case 0: return &v.state case 1: @@ -6358,7 +6514,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueDetailsResp); i { + switch v := v.(*QueueData); i { case 0: return &v.state case 1: @@ -6370,7 +6526,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueueDetailsData); i { + switch v := v.(*QueueDetailsResp); i { case 0: return &v.state case 1: @@ -6382,7 +6538,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserQuotasLimitResp); i { + switch v := v.(*QueueDetailsData); i { case 0: return &v.state case 1: @@ -6394,6 +6550,18 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserQuotasLimitResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserQuotasLimitData); i { case 0: return &v.state @@ -6412,7 +6580,7 @@ func file_hpcAC_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hpcAC_proto_rawDesc, NumEnums: 0, - NumMessages: 48, + NumMessages: 49, NumExtensions: 0, NumServices: 1, }, diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go index a56cca0b..4cf65e40 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.12.4 +// - protoc v3.19.4 // source: hpcAC.proto package hpcAC diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go index 6422d96b..9ab9021e 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go @@ -22,10 +22,11 @@ type ( FileDataReq = hpcAC.FileDataReq FileDataResp = hpcAC.FileDataResp GetJobDetailResp = hpcAC.GetJobDetailResp - HistoryJob = hpcAC.HistoryJob + HistoryJobData = hpcAC.HistoryJobData HistoryJobDetail = hpcAC.HistoryJobDetail HistoryJobDetailReq = hpcAC.HistoryJobDetailReq HistoryJobDetailResp = hpcAC.HistoryJobDetailResp + HistoryJobList = hpcAC.HistoryJobList Job = hpcAC.Job JobCore = hpcAC.JobCore JobDetail = hpcAC.JobDetail diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/getjobdetaillogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/getjobdetaillogic.go index 450e9dfe..e916d3fb 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/getjobdetaillogic.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/getjobdetaillogic.go @@ -1,15 +1,11 @@ package logic import ( - "context" - "encoding/json" - "io" - "net/http" - "time" - "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" "github.com/zeromicro/go-zero/core/logx" ) @@ -31,40 +27,46 @@ func NewGetJobDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetJ // GetJobDetail get job detail func (l *GetJobDetailLogic) GetJobDetail(in *hpcAC.JobDetailReq) (*hpcAC.GetJobDetailResp, error) { // todo: add your logic here and delete this line - var resp hpcAC.GetJobDetailResp - - jobDetailUrl := "/hpc/openapi/v2/jobs/" - - jobId := in.JobId - - token := util.GetToken() - c := http.Client{Timeout: time.Duration(3) * time.Second} - - reqUrl, err := http.NewRequest("GET", "https://api01.hpccube.com:65106/"+jobDetailUrl+jobId, nil) - - if err != nil { - return nil, err - } - - reqUrl.Header.Add("token", token) - - respUrl, err := c.Do(reqUrl) - if err != nil { - return nil, err - } - - body, err := io.ReadAll(respUrl.Body) - if err != nil { - return nil, err - } - - if err = json.Unmarshal(body, &resp); err != nil { - if resp.Code != "0" { - resp.Data = nil - } else { - return nil, err - } - } - - return &resp, nil + //var resp hpcAC.GetJobDetailResp + // + //jobDetailUrl := + // + //jobId := in.JobId + // + //token := util.GetToken() + //c := http.Client{Timeout: time.Duration(3) * time.Second} + // + //reqUrl, err := http.NewRequest("GET", "https://api01.hpccube.com:65106/"+jobDetailUrl+jobId, nil) + // + //if err != nil { + // return nil, err + //} + // + //reqUrl.Header.Add("token", token) + // + //respUrl, err := c.Do(reqUrl) + //if err != nil { + // return nil, err + //} + // + //body, err := io.ReadAll(respUrl.Body) + //if err != nil { + // return nil, err + //} + // + //if err = json.Unmarshal(body, &resp); err != nil { + // if resp.Code != "0" { + // resp.Data = nil + // } else { + // return nil, err + // } + //} + var resp *hpcAC.GetJobDetailResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&resp). + SetHeader("token", util.GetToken()). + Get("https://api01.hpccube.com:65106/hpc/openapi/v2/jobs/" + in.JobId) + + return resp, nil } diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto b/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto index cbadb1a2..9030bf7e 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto +++ b/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto @@ -127,7 +127,7 @@ message JobDetail{ string job_name = 14; // @gotags: copier:"JobName", json:"jobName" string job_run_time = 15; // @gotags: copier:"JobRunTime", json:"jobRunTime" string job_start_time = 16; // @gotags: copier:"JobStartTime", json:"jobStartTime" - string job_status = 17; // @gotags: copier:"JobStatus", json:"jobStatus" + string jobStatus = 17; // @gotags: copier:"JobStatus", json:"jobStatus" string job_submit_time = 18; // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" JobVncSessionInfo job_session_info = 19; // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" string job_manager_id = 20; // @gotags: copier:"JobManagerId", json:"jobmanagerId" @@ -155,7 +155,7 @@ message JobDetailReq{ message GetJobDetailResp{ string code = 1; // @gotags: copier:"Code", json:"code" string msg = 2; // @gotags: copier:"Msg", json:"msg" - JobDetail data = 3; // @gotags: copier:"JobDetail", json:"data" + JobDetail data = 3; // @gotags: copier:"data", json:"data" } /******************Job Detail End*************************/ diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml b/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml new file mode 100644 index 00000000..bfb82f4e --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml @@ -0,0 +1,14 @@ +Name: hpccore.rpc +ListenOn: 0.0.0.0:2003 + +#rpc +ACRpcConf: + Endpoints: + - 127.0.0.1:2001 + NonBlock: true + +#rpc +THRpcConf: + Endpoints: + - 127.0.0.1:2002 + NonBlock: true \ No newline at end of file diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccoreapi.yaml b/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccoreapi.yaml deleted file mode 100644 index 509ae94a..00000000 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccoreapi.yaml +++ /dev/null @@ -1,16 +0,0 @@ -Name: hpcCoreApi -Host: 0.0.0.0 -Port: 8999 -DataSourceName: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/slurm - -#rpc -ACRpcConf: - Endpoints: - - 127.0.0.1:2001 - NonBlock: true - -#rpc -THRpcConf: - Endpoints: - - 127.0.0.1:2002 - NonBlock: true \ No newline at end of file diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/api/hpccoreapi.go b/adaptor/PCM-HPC/PCM-HPC-CORE/api/hpccoreapi.go index 4a0a7820..dadadd250 100644 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/api/hpccoreapi.go +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/api/hpccoreapi.go @@ -1,18 +1,16 @@ package main import ( - "flag" - "fmt" - "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/config" "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/handler" "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/api/internal/svc" - + "flag" + "fmt" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) -var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccoreapi.yaml", "the config file") +var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml", "the config file") func main() { flag.Parse() diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/.gitignore b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/.gitignore new file mode 100644 index 00000000..7469d9c1 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/.gitignore @@ -0,0 +1,6 @@ +#tmp +tmp +tmp/* + + + diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/etc/hpcCore.yaml b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/etc/hpcCore.yaml new file mode 100644 index 00000000..80e36098 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/etc/hpcCore.yaml @@ -0,0 +1,40 @@ +Name: hpc-core-mq +Host: 0.0.0.0 +Port: 3001 +Mode: dev + + +Log: + ServiceName: hpc-mq + Level: error + +Redis: + Host: localhost:6379 +Cache: + - Host: localhost:6379 + +#kq +KqConf: + Name: ScheduleHpc + Brokers: + - 10.101.15.161:9092 + Group: Schedule-Hpc-group + Topic: Schedule-Hpc-Topic + Offset: first + Consumers: 1 + Processors: 1 + +#rpc +HpcAcConf: + Endpoints: + - 127.0.0.1:2001 + NonBlock: true + +#rpc +HpcCoreConf: + Endpoints: + - 127.0.0.1:2003 + NonBlock: true + +DB: + DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm \ No newline at end of file diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/hpcCore.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/hpcCore.go new file mode 100644 index 00000000..317d89aa --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/hpcCore.go @@ -0,0 +1,34 @@ +package main + +import ( + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen" + "flag" + + "github.com/zeromicro/go-zero/core/conf" + "github.com/zeromicro/go-zero/core/service" +) + +var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/mq/etc/hpcCore.yaml", "Specify the config file") + +func main() { + flag.Parse() + var c config.Config + + conf.MustLoad(*configFile, &c) + + // log、prometheus、trace、metricsUrl. + if err := c.SetUp(); err != nil { + panic(err) + } + + serviceGroup := service.NewServiceGroup() + defer serviceGroup.Stop() + + for _, mq := range listen.Mqs(c) { + serviceGroup.Add(mq) + } + + serviceGroup.Start() + +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config/config.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config/config.go new file mode 100644 index 00000000..534154b8 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config/config.go @@ -0,0 +1,24 @@ +package config + +import ( + "github.com/zeromicro/go-queue/kq" + "github.com/zeromicro/go-zero/core/service" + "github.com/zeromicro/go-zero/core/stores/cache" + "github.com/zeromicro/go-zero/core/stores/redis" + "github.com/zeromicro/go-zero/zrpc" +) + +type Config struct { + service.ServiceConf + + Redis redis.RedisConf + DB struct { + DataSource string + } + // kq : pub sub + KqConf kq.KqConf + Cache cache.CacheConf + // rpc + HpcAcConf zrpc.RpcClientConf + HpcCoreConf zrpc.RpcClientConf +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/kqMqs.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/kqMqs.go new file mode 100644 index 00000000..8ddc4910 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/kqMqs.go @@ -0,0 +1,22 @@ +package listen + +import ( + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" + kqMq "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/mqs/kq" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" + "context" + + "github.com/zeromicro/go-queue/kq" + "github.com/zeromicro/go-zero/core/service" +) + +// pub sub use kq (kafka) +func KqMqs(c config.Config, ctx context.Context, svcContext *svc.ServiceContext) []service.Service { + + return []service.Service{ + //Listening for changes in consumption flow status + kq.MustNewQueue(c.KqConf, kqMq.NewScheduleHpcMq(ctx, svcContext)), + //..... + } + +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/listen.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/listen.go new file mode 100644 index 00000000..725e9d76 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/listen/listen.go @@ -0,0 +1,41 @@ +package listen + +import ( + "PCM/adaptor/PCM-CORE/model" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" + "context" + "github.com/go-redis/redis/v8" + "github.com/zeromicro/go-zero/core/service" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) + +// back to all consumers +func Mqs(c config.Config) []service.Service { + + svcContext := svc.NewServiceContext(c) + // 启动定时任务 + svcContext.Cron.Start() + // 同步字典数据到缓存中 + ctx := context.Background() + // 初始化数据 + initData(ctx, svcContext.SqlConn, svcContext.RedisClient) + var services []service.Service + + //kq :pub sub + services = append(services, KqMqs(c, ctx, svcContext)...) + + return services +} + +func initData(ctx context.Context, sql sqlx.SqlConn, redisClient *redis.Client) { + // 查询出字典数据列表 + var dictList []model.Dict + err := sql.QueryRows(&dictList, "select * from dict") + if err != nil { + return + } + for _, dict := range dictList { + redisClient.Set(ctx, dict.DictValue, dict.DictCode, 0) + } +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/mqs/kq/ScheduleHpc.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/mqs/kq/ScheduleHpc.go new file mode 100644 index 00000000..097fa569 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/mqs/kq/ScheduleHpc.go @@ -0,0 +1,102 @@ +package kq + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" + "PCM/common/tool" + "context" + "encoding/json" + "github.com/robfig/cron/v3" + "github.com/zeromicro/go-zero/core/logx" + "strings" +) + +/* +* +Listening to the payment flow status change notification message queue +*/ +type ScheduleHpcMq struct { + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewScheduleHpcMq(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleHpcMq { + return &ScheduleHpcMq{ + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *ScheduleHpcMq) Consume(_, val string) error { + + var message hpccoreclient.SubmitJobReq + if err := json.Unmarshal([]byte(val), &message); err != nil { + logx.WithContext(l.ctx).Error("PaymentUpdateStatusMq->Consume Unmarshal err : %v , val : %s", err, val) + return err + } + + if err := l.execService(message); err != nil { + logx.WithContext(l.ctx).Error("PaymentUpdateStatusMq->execService err : %v , val : %s , message:%+v", err, val, message) + return err + } + + return nil +} + +func (l *ScheduleHpcMq) execService(message hpccoreclient.SubmitJobReq) error { + // 提交作业到hpc-core + var submitJobReq *hpccoreclient.SubmitJobReq + tool.Convert(message, &submitJobReq) + job, _ := l.svcCtx.HpcCoreRpc.SubmitJob(l.ctx, submitJobReq) + // 启动定时任务查询作业状态 + if job != nil { + go l.addTaskCron(job.Data, submitJobReq.TaskId) + } + return nil +} + +func (l *ScheduleHpcMq) addTaskCron(jobId string, taskId int64) { + // 创建定时任务 + entryId, err := l.addCron(jobId, taskId) + if err != nil { + return + } + // 将定时任务id缓存到redis 便于停止定时任务 + l.svcCtx.RedisClient.Set(l.ctx, "taskCron_"+tool.Int64ToString(taskId), entryId, 0) +} + +func (l *ScheduleHpcMq) addCron(jobId string, taskId int64) (string, error) { + entryID, err := l.svcCtx.Cron.AddFunc("0/9 * * * * ?", func() { + // 调用hpc-core获取job详细信息 + req := hpcacclient.JobDetailReq{ + JobId: jobId, + } + jobDetail, err := l.svcCtx.HpcAcRpc.GetJobDetail(l.ctx, &req) + if err != nil { + return + } + // 对比缓存中的数据 + oldStatus, _ := l.svcCtx.RedisClient.Get(l.ctx, "taskStatus_"+tool.Int64ToString(taskId)).Result() + if !strings.EqualFold(oldStatus, jobDetail.Data.JobStatus) { + // job状态与之前不一致 修改redis和db中的数据 + l.svcCtx.RedisClient.Set(l.ctx, "taskStatus_"+tool.Int64ToString(taskId), jobDetail.Data.JobStatus, 0) + l.svcCtx.SqlConn.Exec("update task set job_id = ? , status = ? where id = ?", jobId, jobDetail.Data.JobStatus, taskId) + } + // 判断作业是否结束 + l.endTask(taskId, jobDetail.Data.JobStatus) + }) + return tool.EntryIdToString(entryID), err +} + +func (l *ScheduleHpcMq) endTask(taskId int64, currentStatus string) { + // 查询字典中作业状态枚举值 + statusDict, _ := l.svcCtx.RedisClient.Get(l.ctx, currentStatus).Result() + if strings.EqualFold(statusDict, "suspended") || strings.EqualFold(statusDict, "completed") || strings.EqualFold(statusDict, "failed") { + // 停止定时任务,清除缓存数据 + entryId, _ := l.svcCtx.RedisClient.Get(l.ctx, "taskCron_"+tool.Int64ToString(taskId)).Result() + l.svcCtx.Cron.Remove(cron.EntryID(tool.StringToInt(entryId))) + l.svcCtx.RedisClient.Del(l.ctx, "taskStatus_"+tool.Int64ToString(taskId)) + l.svcCtx.RedisClient.Del(l.ctx, "taskCron_"+tool.Int64ToString(taskId)) + } +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc/serviceContext.go b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc/serviceContext.go new file mode 100644 index 00000000..e6f0068b --- /dev/null +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/svc/serviceContext.go @@ -0,0 +1,38 @@ +package svc + +import ( + "PCM/adaptor/PCM-CORE/model" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/mq/internal/config" + "PCM/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpccoreclient" + "github.com/go-redis/redis/v8" + "github.com/robfig/cron/v3" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "github.com/zeromicro/go-zero/zrpc" +) + +type ServiceContext struct { + Config config.Config + HpcAcRpc hpcacclient.HpcAC + HpcCoreRpc hpccoreclient.HpcCore + Cron *cron.Cron + RedisClient *redis.Client + TaskModel model.TaskModel + DictModel model.DictModel + SqlConn sqlx.SqlConn +} + +func NewServiceContext(c config.Config) *ServiceContext { + sqlConn := sqlx.NewMysql(c.DB.DataSource) + return &ServiceContext{ + SqlConn: sqlx.NewMysql(c.DB.DataSource), + Cron: cron.New(cron.WithSeconds()), + RedisClient: redis.NewClient(&redis.Options{ + Addr: c.Redis.Host, + }), + Config: c, + TaskModel: model.NewTaskModel(sqlConn, c.Cache), + HpcAcRpc: hpcacclient.NewHpcAC(zrpc.MustNewClient(c.HpcAcConf)), + HpcCoreRpc: hpccoreclient.NewHpcCore(zrpc.MustNewClient(c.HpcCoreConf)), + } +} diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpcCore/pcm-hpc-core.pb.go b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpcCore/pcm-hpc-core.pb.go index 7b13f13d..562e931b 100644 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpcCore/pcm-hpc-core.pb.go +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/hpcCore/pcm-hpc-core.pb.go @@ -25,9 +25,10 @@ type SubmitJobReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - ThReq *THSubmitJobReq `protobuf:"bytes,2,opt,name=thReq,proto3" json:"thReq,omitempty"` - AcReq *ACSubmitJobReq `protobuf:"bytes,3,opt,name=acReq,proto3" json:"acReq,omitempty"` + TaskId int64 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId,omitempty"` // @gotags: copier:"TaskId" + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + ThReq *THSubmitJobReq `protobuf:"bytes,3,opt,name=thReq,proto3" json:"thReq,omitempty"` + AcReq *ACSubmitJobReq `protobuf:"bytes,4,opt,name=acReq,proto3" json:"acReq,omitempty"` } func (x *SubmitJobReq) Reset() { @@ -62,6 +63,13 @@ func (*SubmitJobReq) Descriptor() ([]byte, []int) { return file_pcm_hpc_core_proto_rawDescGZIP(), []int{0} } +func (x *SubmitJobReq) GetTaskId() int64 { + if x != nil { + return x.TaskId + } + return 0 +} + func (x *SubmitJobReq) GetVersion() string { if x != nil { return x.Version @@ -1378,260 +1386,261 @@ var File_pcm_hpc_core_proto protoreflect.FileDescriptor var file_pcm_hpc_core_proto_rawDesc = []byte{ 0x0a, 0x12, 0x70, 0x63, 0x6d, 0x2d, 0x68, 0x70, 0x63, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x88, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x52, 0x05, 0x74, 0x68, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x63, 0x52, - 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x2e, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x52, 0x05, 0x61, 0x63, 0x52, 0x65, 0x71, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x14, 0x0a, 0x0e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x74, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x74, 0x67, 0x46, 0x72, 0x65, 0x71, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x52, - 0x65, 0x73, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x67, 0x63, 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x41, 0x72, 0x67, 0x76, 0x52, 0x04, 0x61, 0x72, 0x67, 0x76, 0x12, 0x1b, 0x0a, 0x09, - 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x49, 0x6e, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6b, 0x70, 0x74, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x63, 0x6b, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, - 0x08, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6b, 0x70, 0x74, 0x44, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, - 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, - 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0b, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x72, 0x65, - 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6d, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, - 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, - 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, - 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x69, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x23, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x76, 0x65, 0x72, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x76, - 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, - 0x6f, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, - 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x30, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, - 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x4a, 0x6f, 0x62, 0x45, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x33, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, - 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x61, 0x72, - 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, - 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, - 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, - 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x19, - 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, - 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, - 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, - 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, - 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, - 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, - 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, - 0x65, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x47, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, - 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, - 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x70, - 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x4a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, - 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, - 0x73, 0x6b, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x54, - 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, - 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, - 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, - 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x20, - 0x0a, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x52, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x60, 0x0a, 0x0f, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x11, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x13, 0x54, 0x48, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, - 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1a, - 0x0a, 0x04, 0x41, 0x72, 0x67, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x76, 0x22, 0x2f, 0x0a, 0x0b, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x0e, - 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, - 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0d, - 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, - 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, - 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4b, 0x0a, 0x0f, 0x41, - 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, 0x61, 0x70, - 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, - 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, 0x0a, 0x09, - 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x49, 0x4e, - 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, - 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, - 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, - 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, 0x1b, 0x0a, - 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, - 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, - 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, 0x5f, 0x50, - 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, 0x50, 0x4e, - 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, 0x08, 0x47, - 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, - 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x41, 0x50, - 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x41, - 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, - 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x47, 0x41, - 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x12, - 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, - 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x53, 0x55, - 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, - 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x27, 0x0a, - 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, 0x49, 0x4c, - 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, - 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x32, 0x47, 0x0a, 0x07, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, - 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x16, + 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x68, 0x52, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x52, 0x05, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x63, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x43, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x52, 0x05, 0x61, 0x63, 0x52, 0x65, + 0x71, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x14, 0x0a, + 0x0e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x74, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x74, 0x67, 0x46, 0x72, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, 0x73, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x61, 0x72, 0x67, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x67, 0x63, + 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x72, 0x67, 0x76, 0x52, 0x04, + 0x61, 0x72, 0x67, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x69, 0x6e, + 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x49, 0x6e, + 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6b, 0x70, 0x74, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6b, 0x70, 0x74, 0x5f, 0x64, 0x69, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6b, 0x70, 0x74, 0x44, 0x69, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, + 0x75, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, + 0x75, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x69, 0x6e, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x70, + 0x75, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x65, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x72, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x67, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x69, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, + 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, + 0x69, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, + 0x6e, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, + 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x42, 0x69, 0x6e, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, + 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x26, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x68, 0x6f, + 0x73, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x48, 0x6f, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, + 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x31, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x73, + 0x70, 0x61, 0x6e, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x61, 0x6e, 0x6b, 0x4a, 0x6f, + 0x62, 0x45, 0x6e, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x73, + 0x6b, 0x44, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, + 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x61, 0x69, 0x74, + 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x38, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x70, 0x75, 0x73, 0x50, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x6d, + 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, + 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, + 0x75, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3e, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x40, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, + 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x43, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x18, 0x45, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, + 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x48, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6f, + 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, + 0x75, 0x73, 0x18, 0x49, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x43, + 0x70, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6e, 0x4d, 0x69, + 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0f, 0x70, 0x6e, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x70, 0x6e, 0x4d, 0x69, 0x6e, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x4e, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x17, 0x0a, + 0x07, 0x73, 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, + 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, + 0x07, 0x73, 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x34, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x52, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, + 0x74, 0x34, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x63, 0x6b, 0x65, + 0x79, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x63, 0x6b, 0x65, 0x79, 0x22, 0x60, + 0x0a, 0x0f, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x11, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, + 0x22, 0x64, 0x0a, 0x13, 0x54, 0x48, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x04, 0x41, 0x72, 0x67, 0x76, 0x12, 0x12, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, + 0x67, 0x76, 0x22, 0x2f, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x0e, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, + 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, + 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x4b, 0x0a, 0x0f, 0x41, 0x43, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, + 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, + 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, + 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, + 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, + 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, + 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, + 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, + 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, + 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, + 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, + 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, + 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, + 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, + 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, + 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, + 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, + 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, + 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, + 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, + 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, + 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, + 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, + 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, + 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, + 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x32, 0x47, + 0x0a, 0x07, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x16, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x42, - 0x0a, 0x5a, 0x08, 0x2f, 0x68, 0x70, 0x63, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x68, 0x70, 0x63, 0x43, + 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/internal/logic/submitjoblogic.go b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/internal/logic/submitjoblogic.go index cffcc1be..2525c250 100644 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/internal/logic/submitjoblogic.go +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/internal/logic/submitjoblogic.go @@ -37,11 +37,9 @@ func (l *SubmitJobLogic) SubmitJob(in *hpcCore.SubmitJobReq) (resp *hpcCore.Subm version := in.Version switch version { case "ac": - acReq := in.AcReq - req := &hpcAC.SubmitJobReq{} - err = copier.CopyWithOption(acReq, req, copier.Option{Converters: tool.Converters}) - acResp, err := l.svcCtx.ACRpc.SubmitJob(l.ctx, req) - + req := hpcAC.SubmitJobReq{} + tool.Convert(in.AcReq, &req) + acResp, err := l.svcCtx.ACRpc.SubmitJob(l.ctx, &req) if err != nil { return nil, errors.Wrapf(xerr.NewErrMsg("Failed to submit job to AC"), "Failed to submit job to Shuguang err : %v ,req:%+v", err, req) } diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pb/pcm-hpc-core.proto b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pb/pcm-hpc-core.proto index 65b9ebf5..dc370ebf 100644 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pb/pcm-hpc-core.proto +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pb/pcm-hpc-core.proto @@ -4,9 +4,10 @@ package template; option go_package = "/hpcCore"; message SubmitJobReq{ - string version = 1; - THSubmitJobReq thReq = 2; - ACSubmitJobReq acReq = 3; + int64 taskId = 1;// @gotags: copier:"TaskId" + string version = 2; + THSubmitJobReq thReq = 3; + ACSubmitJobReq acReq = 4; } message SubmitJobResp{ diff --git a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pcmhpccore.go b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pcmhpccore.go index c291ae7e..079b7a90 100644 --- a/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pcmhpccore.go +++ b/adaptor/PCM-HPC/PCM-HPC-CORE/rpc/pcmhpccore.go @@ -16,7 +16,7 @@ import ( "google.golang.org/grpc/reflection" ) -var configFile = flag.String("f", "etc/pcmhpccore.yaml", "the config file") +var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml", "the config file") func main() { flag.Parse() diff --git a/common/constant/task.go b/common/constant/task.go new file mode 100644 index 00000000..21eb6fd9 --- /dev/null +++ b/common/constant/task.go @@ -0,0 +1,18 @@ +package constant + +// 任务类型 +const ( + TASK_TYPE_CLOUD = 1 + TASK_TYPE_HPC = 2 + TASK_TYPE_AI = 3 +) + +// 任务状态 +const ( + TASK_STATUS_SAVED = 1 + TASK_STATUS_INIT = 2 + TASK_STATUS_RUNNING = 3 + TASK_STATUS_FAILED = 4 + TASK_STATUS_END = 5 + TASK_STATUS_UNKNOW = 6 +) diff --git a/common/message/message.go b/common/message/message.go new file mode 100644 index 00000000..4d7520c5 --- /dev/null +++ b/common/message/message.go @@ -0,0 +1,124 @@ +// KqMessage +package message + +// Hpc-ac +type HpcSubmitMessage struct { + TaskId int64 `json:"taskId"` + SlurmVersion string `json:"slurmVersion"` + Apptype string `json:"apptype,optional"` + Appname string `json:"appname,optional"` + StrJobManagerID int64 `json:"strJobManagerID,optional"` + MapAppJobInfo MapAppJobInfo `json:"mapAppJobInfo,optional"` + Account string `json:"account,optional"` // + Acctg_freq string `json:"acctg_freq,optional"` + Alloc_node string `json:"alloc_node,optional"` + Alloc_resp_port int32 `json:"alloc_resp_port,optional"` + Alloc_sid int32 `json:"alloc_sid,optional"` + Argc int32 `json:"argc,optional"` + Argv []Argv `json:"Argv,optional"` + Array_inx string `json:"array_inx,optional"` + Begin_time int64 `json:"begin_time,optional"` + Ckpt_interval int32 `json:"ckpt_interval,optional"` + Ckpt_dir string `json:"ckpt_dir,optional"` + Comment string `json:"comment,optional"` + Contiguous int32 `json:"contiguous,optional"` + Cpu_bind string `json:"cpu_bind,optional"` + Cpu_bind_type int32 `json:"cpu_bind_type,optional"` + Dependency string `json:"dependency,optional"` + End_time int64 `json:"end_time,optional"` + Environment []Environment `json:"Environment,optional"` + Env_size int32 `json:"env_size,optional"` + Exc_nodes string `json:"exc_nodes,optional"` + Features string `json:"features,optional"` + Gres string `json:"gres,optional"` + Group_id int32 `json:"group_id,optional"` + Immediate int32 `json:"immediate,optional"` + Job_id int32 `json:"job_id,optional"` + Kill_on_node_fail int32 `json:"kill_on_node_fail,optional"` + Licenses string `json:"licenses,optional"` + Mail_type int32 `json:"mail_type,optional"` + Mail_user string `json:"mail_user,optional"` + Mem_bind string `json:"mem_bind,optional"` + Mem_bind_type int32 `json:"mem_bind_type,optional"` + Name string `json:"name,optional"` // + Network string `json:"network,optional"` + Nice int32 `json:"nice,optional"` + Num_tasks int32 `json:"num_tasks,optional"` + Open_mode int32 `json:"open_mode,optional"` + Other_port int32 `json:"other_port,optional"` + Overcommit int32 `json:"overcommit,optional"` + Partition string `json:"partition,optional"` + Plane_size int32 `json:"plane_size,optional"` + Priority int32 `json:"priority,optional"` + Profile int32 `json:"profile,optional"` + Qos string `json:"qos,optional"` + Resp_host string `json:"resp_host,optional"` + Req_nodes string `json:"req_nodes,optional"` + Requeue int32 `json:"requeue,optional"` + Reservation string `json:"reservation,optional"` + Script string `json:"script,optional"` // + Shared int32 `json:"shared,optional"` + Spank_job_env_size int32 `json:"spank_job_env_size,optional"` + Task_dist int32 `json:"task_dist,optional"` + Time_limit int32 `json:"time_limit,optional"` + Time_min int32 `json:"time_min,optional"` + User_id int32 `json:"user_id,optional"` // + Wait_all_nodes int32 `json:"wait_all_nodes,optional"` + Warn_signal int32 `json:"warn_signal,optional"` + Warn_time int32 `json:"warn_time,optional"` + Work_dir string `json:"work_dir,optional"` + Cpus_per_task int32 `json:"cpus_per_task,optional"` + Min_cpus int32 `json:"min_cpus,optional"` // + Max_cpus int32 `json:"max_cpus,optional"` + Min_nodes int32 `json:"min_nodes,optional"` + Max_nodes int32 `json:"max_nodes,optional"` + Boards_per_node int32 `json:"boards_per_node,optional"` + Sockets_per_board int32 `json:"sockets_per_board,optional"` + Sockets_per_node int32 `json:"sockets_per_node,optional"` + Cores_per_socket int32 `json:"cores_per_socket,optional"` + Threads_per_core int32 `json:"threads_per_core,optional"` + Ntasks_per_node int32 `json:"ntasks_per_node,optional"` + Ntasks_per_socket int32 `json:"ntasks_per_socket,optional"` + Ntasks_per_core int32 `json:"ntasks_per_core,optional"` + Ntasks_per_board int32 `json:"ntasks_per_board,optional"` + Pn_min_cpus int32 `json:"pn_min_cpus,optional"` + Pn_min_memory int32 `json:"pn_min_memory,optional"` + Pn_min_tmp_disk int32 `json:"pn_min_tmp_disk,optional"` + Reboot int32 `json:"reboot,optional"` + Rotate int32 `json:"rotate,optional"` + Req_switch int32 `json:"req_switch,optional"` + Std_err string `json:"std_err,optional"` + Std_in string `json:"std_in,optional"` + Std_out string `json:"std_out,optional"` + Wait4switch int32 `json:"wait4switch,optional"` + Wckey string `json:"wckey,optional"` +} + +type Argv struct { + Argv string `json:"argv,optional"` +} + +type Environment struct { + Environment string `json:"environment,optional"` +} + +type MapAppJobInfo struct { + GAP_CMD_FILE string `json:"GAP_CMD_FILE"` //命令行内容 + GAP_NNODE string `json:"GAP_NNODE"` //节点个数(当指定该参数时,GAP_NODE_STRING必须为"") + GAP_NODE_STRING string `json:"GAP_NODE_STRING,optional"` //指定节点(当指定该参数时,GAP_NNODE必须为"") + GAP_SUBMIT_TYPE string `json:"GAP_SUBMIT_TYPE"` //cmd(命令行模式) + GAP_JOB_NAME string `json:"GAP_JOB_NAME"` //作业名称 + GAP_WORK_DIR string `json:"GAP_WORK_DIR"` //工作路径 + GAP_QUEUE string `json:"GAP_QUEUE"` //队列名称 + GAP_NPROC string `json:"GAP_NPROC,optional"` //总核心数(GAP_NPROC和GAP_PPN选其一填写) + GAP_PPN string `json:"GAP_PPN,optional"` //CPU核心/节点(GAP_NPROC和GAP_PPN选其一填写) + GAP_NGPU string `json:"GAP_NGPU,optional"` //GPU卡数/节点 + GAP_NDCU string `json:"GAP_NDCU,optional"` //DCU卡数/节点 + GAP_JOB_MEM string `json:"GAP_JOB_MEM,optional"` //每个节点内存值,单位为MB/GB + GAP_WALL_TIME string `json:"GAP_WALL_TIME"` //最大运行时长(HH:MM:ss) + GAP_EXCLUSIVE string `json:"GAP_EXCLUSIVE,optional"` // 是否独占节点,1为独占,空为非独占 + GAP_APPNAME string `json:"GAP_APPNAME"` //BASE(基础应用),支持填写具体的应用英文名称 + GAP_MULTI_SUB string `json:"GAP_MULTI_SUB,optional"` //作业组长度,建议为小于等于50的正整数 + GAP_STD_OUT_FILE string `json:"GAP_STD_OUT_FILE"` //工作路径/std.out.%j + GAP_STD_ERR_FILE string `json:"GAP_STD_ERR_FILE"` //工作路径/std.err.%j +} diff --git a/common/tool/convert.go b/common/tool/convert.go new file mode 100644 index 00000000..4ed175c2 --- /dev/null +++ b/common/tool/convert.go @@ -0,0 +1,28 @@ +package tool + +import ( + "encoding/json" + "github.com/robfig/cron/v3" + "strconv" +) + +// Convert 通过JSON赋值 +func Convert(source interface{}, target interface{}) { + jsonByte, _ := json.Marshal(source) + json.Unmarshal(jsonByte, &target) +} + +// Int64ToString int64转string +func Int64ToString(value int64) string { + return strconv.FormatInt(value, 10) +} + +// EntryIdToString EntryID转string +func EntryIdToString(id cron.EntryID) string { + return strconv.Itoa(int(id)) +} + +func StringToInt(value string) int { + intValue, _ := strconv.Atoi(value) + return intValue +} diff --git a/common/tool/copier.go b/common/tool/copier.go index 34277cbd..4dbca794 100644 --- a/common/tool/copier.go +++ b/common/tool/copier.go @@ -1,7 +1,6 @@ package tool import ( - "encoding/json" "github.com/jinzhu/copier" "github.com/pkg/errors" "strconv" @@ -49,9 +48,3 @@ var Converters = []copier.TypeConverter{ }, }, } - -// Convert 通过JSON赋值 -func Convert(source interface{}, target interface{}) { - jsonByte, _ := json.Marshal(source) - json.Unmarshal(jsonByte, &target) -} diff --git a/go.mod b/go.mod index 68fbfc26..178ff272 100644 --- a/go.mod +++ b/go.mod @@ -4,11 +4,14 @@ go 1.19 require ( github.com/bitly/go-simplejson v0.5.0 + github.com/go-redis/redis/v8 v8.11.5 github.com/go-resty/resty/v2 v2.7.0 github.com/jinzhu/copier v0.3.5 github.com/pkg/errors v0.9.1 + github.com/robfig/cron/v3 v3.0.1 github.com/shopspring/decimal v1.3.1 github.com/sony/sonyflake v1.1.0 + github.com/zeromicro/go-queue v1.1.8 github.com/zeromicro/go-zero v1.4.4 google.golang.org/grpc v1.50.1 google.golang.org/protobuf v1.28.1 @@ -31,7 +34,6 @@ require ( github.com/felixge/fgprof v0.9.3 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-redis/redis/v8 v8.11.5 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.4.3 // indirect @@ -46,6 +48,7 @@ require ( github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.15.9 // indirect github.com/mattn/go-colorable v0.1.9 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect @@ -53,10 +56,12 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/openzipkin/zipkin-go v0.4.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect + github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/prometheus/client_golang v1.13.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/segmentio/kafka-go v0.4.38 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect go.etcd.io/etcd/api/v3 v3.5.5 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect diff --git a/go.sum b/go.sum index bac406dd..43ff94fc 100644 --- a/go.sum +++ b/go.sum @@ -387,10 +387,12 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= +github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q= github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M= github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/beanstalkd/go-beanstalk v0.2.0/go.mod h1:/G8YTyChOtpOArwLTQPY1CHB+i212+av35bkPXXj56Y= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -465,6 +467,7 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXqMUkZeijnXp/E= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -638,6 +641,7 @@ github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+ github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= @@ -660,6 +664,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -732,6 +738,8 @@ github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -769,9 +777,13 @@ github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0ua github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/segmentio/kafka-go v0.4.38 h1:iQdOBbUSdfuYlFpvjuALgj7N6DrdPA0HfB4AhREOdtg= +github.com/segmentio/kafka-go v0.4.38/go.mod h1:ikyuGon/60MN/vXFgykf7Zm8P5Be49gJU6vezwjnnhU= github.com/shirou/gopsutil v2.19.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= @@ -792,6 +804,7 @@ github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzu github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -816,6 +829,10 @@ github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+ github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= +github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4= +github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -825,6 +842,9 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRFc9q3yYbBkB6tsm4aCwwQV/j1JQAQ= github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= +github.com/zeromicro/go-queue v1.1.8 h1:DSzOYh6tSr0Flw9FqnaBX2fxR0T3vgEwVNItobLwQgE= +github.com/zeromicro/go-queue v1.1.8/go.mod h1:sKF0fI9cKmqY/Y9Pr2aRnt3zllnPglBJ1yl4ByOEhiw= +github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y= github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y= github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4= go.etcd.io/etcd/api/v3 v3.5.5 h1:BX4JIbQ7hl7+jL+g+2j5UAr0o1bctCm6/Ct+ArBGkf0= @@ -890,6 +910,7 @@ golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -981,6 +1002,7 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=