From 35d10cee00c51b698e548a82f26516825be7fcbe Mon Sep 17 00:00:00 2001 From: ifooth Date: Thu, 12 Oct 2023 10:45:23 +0800 Subject: [PATCH 01/28] Update: fix dataDir not exist (merge request !1435) Squash merge branch 'bcs-webconsole' into 'master' Update: fix dataDir not exist --- .../bcs-webconsole/console/audit/record/uploader.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bcs-services/bcs-webconsole/console/audit/record/uploader.go b/bcs-services/bcs-webconsole/console/audit/record/uploader.go index a3b0634da9..d84086b743 100644 --- a/bcs-services/bcs-webconsole/console/audit/record/uploader.go +++ b/bcs-services/bcs-webconsole/console/audit/record/uploader.go @@ -73,6 +73,10 @@ func newUploader() (*Uploader, error) { u.storage = storage } + if err := ensureDirExist(config.G.Audit.DataDir); err != nil { + return nil, err + } + return u, nil } @@ -150,6 +154,11 @@ func (u *Uploader) batchUpload(ignoreState bool) (*batchUploadResult, error) { result := &batchUploadResult{} err := filepath.Walk(u.dataDir, func(path string, info fs.FileInfo, err error) error { + // 目录/文件不存在等 + if err != nil { + return err + } + filePath := path[len(u.dataDir):] if info.IsDir() { From 37270eda23b904b3eec89666998ed8a27e43054d Mon Sep 17 00:00:00 2001 From: ifooth Date: Thu, 12 Oct 2023 11:53:49 +0800 Subject: [PATCH 02/28] Update: add HandlePostOutputMsg (merge request !1454) Squash merge branch 'bcs-webconsole' into 'master' Update: refine upload logger --- .../console/audit/record/recorder.go | 4 ++++ .../console/audit/record/uploader.go | 4 ++-- .../bcs-webconsole/console/manager/conn.go | 13 +++++++------ .../bcs-webconsole/console/manager/manager.go | 15 +++++---------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/bcs-services/bcs-webconsole/console/audit/record/recorder.go b/bcs-services/bcs-webconsole/console/audit/record/recorder.go index 05ef82adf9..9dcfeabc6a 100644 --- a/bcs-services/bcs-webconsole/console/audit/record/recorder.go +++ b/bcs-services/bcs-webconsole/console/audit/record/recorder.go @@ -173,6 +173,10 @@ func (r *ReplyRecorder) Flush() { // End 正常退出: 关闭缓存和文件 func (r *ReplyRecorder) End() { + if r == nil { + return + } + r.once.Do(func() { // 关闭前将剩余缓冲区数据写入 r.Writer.WriteBuff.Flush() // nolint diff --git a/bcs-services/bcs-webconsole/console/audit/record/uploader.go b/bcs-services/bcs-webconsole/console/audit/record/uploader.go index d84086b743..566b8b473a 100644 --- a/bcs-services/bcs-webconsole/console/audit/record/uploader.go +++ b/bcs-services/bcs-webconsole/console/audit/record/uploader.go @@ -89,8 +89,8 @@ func (u *Uploader) setState(filePath string, s state) { // IntervalUpload 定时上传 func (u *Uploader) IntervalUpload(ctx context.Context) error { - if u.storage == nil { - klog.Info("storage type not set, just ignore") + if !config.G.Audit.Enabled || u.storage == nil { + klog.Info("audit not enabled or storage type not set, uploader just ignore") return nil } diff --git a/bcs-services/bcs-webconsole/console/manager/conn.go b/bcs-services/bcs-webconsole/console/manager/conn.go index e35a73c47d..d3488e0395 100644 --- a/bcs-services/bcs-webconsole/console/manager/conn.go +++ b/bcs-services/bcs-webconsole/console/manager/conn.go @@ -175,8 +175,7 @@ func (r *RemoteStreamConn) Write(p []byte) (int, error) { return 0, nil } - output := []byte(base64.StdEncoding.EncodeToString(outputMsg)) - r.outputMsgChan <- output + r.outputMsgChan <- outputMsg return len(p), nil } @@ -221,16 +220,18 @@ func (r *RemoteStreamConn) Run(c *gin.Context) error { } // 收到首个字节才发送 hello 信息 if notSendMsg && !r.hideBanner { - if err := r.bindMgr.HandleBannerMsg([]byte(guideMessages)); err != nil { - return err - } + r.bindMgr.HandlePostOutputMsg([]byte(guideMessages)) + if err := PreparedGuideMessage(r.ctx, r.wsConn, guideMessages); err != nil { return err } notSendMsg = false } - if err := r.wsConn.WriteMessage(websocket.TextMessage, output); err != nil { + r.bindMgr.HandlePostOutputMsg(output) + + outputMsg := []byte(base64.StdEncoding.EncodeToString(output)) + if err := r.wsConn.WriteMessage(websocket.TextMessage, outputMsg); err != nil { return err } case <-pingInterval.C: // 定时主动发送 ping diff --git a/bcs-services/bcs-webconsole/console/manager/manager.go b/bcs-services/bcs-webconsole/console/manager/manager.go index 5bf3053643..7f4d8d4327 100644 --- a/bcs-services/bcs-webconsole/console/manager/manager.go +++ b/bcs-services/bcs-webconsole/console/manager/manager.go @@ -84,14 +84,6 @@ func (c *ConsoleManager) AddMgrFunc(mgrFunc ManagerFunc) { c.managerFuncs = append(c.managerFuncs, mgrFunc) } -// HandleBannerMsg 处理 banner -func (c *ConsoleManager) HandleBannerMsg(msg []byte) error { - // replay 记录 banner - record.RecordOutputEvent(c.recorder, msg) - - return nil -} - // HandleResizeMsg 处理 resize 数据 func (c *ConsoleManager) HandleResizeMsg(resizeMsg *types.TerminalSize) error { // replay 记录终端大小变化 @@ -127,6 +119,11 @@ func (c *ConsoleManager) HandleInputMsg(msg []byte) ([]byte, error) { // HandleOutputMsg : 处理输出数据流 func (c *ConsoleManager) HandleOutputMsg(msg []byte) ([]byte, error) { + return msg, nil +} + +// HandlePostOutputMsg : 后置输出数据流处理,在HandleOutputMsg之后, 发送给websocket之前, 不能修改数据,没有错误返回 +func (c *ConsoleManager) HandlePostOutputMsg(msg []byte) { // 命令行解析与审计 c.auditCmd(msg) @@ -137,8 +134,6 @@ func (c *ConsoleManager) HandleOutputMsg(msg []byte) ([]byte, error) { if len(msg) > 0 && c.keyDec > 0 && msg[0] == c.keyDec { klog.InfoS("tracing key output", "key", msg, "waiting", time.Since(c.keyWaitingTime)) } - - return msg, nil } // Run : Manager 后台任务等 From a3ea8649ab0752dec918c9e7b83645903b35877a Mon Sep 17 00:00:00 2001 From: johnypeng Date: Thu, 12 Oct 2023 19:38:56 +0800 Subject: [PATCH 03/28] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4app=E6=97=B6?= =?UTF-8?q?=E7=BA=A7=E8=81=94=E5=88=A0=E9=99=A4=E6=9C=8D=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E5=85=B3=E7=B3=BB=EF=BC=8C=E9=81=BF=E5=85=8D=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E8=84=8F=E6=95=B0=E6=8D=AE=E5=8F=8Apanic=20(#2680)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/template_binding_relation.go | 6 ++ .../bcs-bscp/cmd/data-service/service/app.go | 23 ++++- .../service/template_binding_relation.go | 92 ++++++++++++++----- bcs-services/bcs-bscp/pkg/dal/dao/app.go | 70 ++++++-------- .../pkg/dal/dao/app_template_binding.go | 10 ++ 5 files changed, 137 insertions(+), 64 deletions(-) diff --git a/bcs-services/bcs-bscp/cmd/config-server/service/template_binding_relation.go b/bcs-services/bcs-bscp/cmd/config-server/service/template_binding_relation.go index 5ab252793c..00c3eaa109 100644 --- a/bcs-services/bcs-bscp/cmd/config-server/service/template_binding_relation.go +++ b/bcs-services/bcs-bscp/cmd/config-server/service/template_binding_relation.go @@ -186,6 +186,8 @@ func (s *Service) ListTmplBoundUnnamedApps(ctx context.Context, req *pbcs.ListTm } // ListTmplBoundNamedApps list template bound named app details +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted func (s *Service) ListTmplBoundNamedApps(ctx context.Context, req *pbcs.ListTmplBoundNamedAppsReq) ( *pbcs.ListTmplBoundNamedAppsResp, error) { grpcKit := kit.FromGrpcContext(ctx) @@ -338,6 +340,8 @@ func (s *Service) ListTmplRevisionBoundUnnamedApps(ctx context.Context, req *pbc } // ListTmplRevisionBoundNamedApps list template revision bound named app details +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted func (s *Service) ListTmplRevisionBoundNamedApps(ctx context.Context, req *pbcs.ListTmplRevisionBoundNamedAppsReq) (*pbcs.ListTmplRevisionBoundNamedAppsResp, error) { grpcKit := kit.FromGrpcContext(ctx) @@ -454,6 +458,8 @@ func (s *Service) ListMultiTmplSetBoundUnnamedApps(ctx context.Context, req *pbc } // ListTmplSetBoundNamedApps list template set bound named app details +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted func (s *Service) ListTmplSetBoundNamedApps(ctx context.Context, req *pbcs.ListTmplSetBoundNamedAppsReq) ( *pbcs.ListTmplSetBoundNamedAppsResp, error) { grpcKit := kit.FromGrpcContext(ctx) diff --git a/bcs-services/bcs-bscp/cmd/data-service/service/app.go b/bcs-services/bcs-bscp/cmd/data-service/service/app.go index 205b32bd19..c71f98c5aa 100644 --- a/bcs-services/bcs-bscp/cmd/data-service/service/app.go +++ b/bcs-services/bcs-bscp/cmd/data-service/service/app.go @@ -96,8 +96,29 @@ func (s *Service) DeleteApp(ctx context.Context, req *pbds.DeleteAppReq) (*pbbas ID: req.Id, BizID: req.BizId, } - if err := s.dao.App().Delete(grpcKit, app); err != nil { + + tx := s.dao.GenQuery().Begin() + + // 1. delete app + if err := s.dao.App().DeleteWithTx(grpcKit, tx, app); err != nil { logs.Errorf("delete app failed, err: %v, rid: %s", err, grpcKit.Rid) + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, err + } + + // 2. delete app template binding + if err := s.dao.AppTemplateBinding().DeleteByAppIDWithTx(grpcKit, tx, req.Id); err != nil { + logs.Errorf("delete app template binding failed, err: %v, rid: %s", err, grpcKit.Rid) + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, err + } + + if err := tx.Commit(); err != nil { + logs.Errorf("commit transaction failed, err: %v, rid: %s", err, grpcKit.Rid) return nil, err } diff --git a/bcs-services/bcs-bscp/cmd/data-service/service/template_binding_relation.go b/bcs-services/bcs-bscp/cmd/data-service/service/template_binding_relation.go index b826c667fc..4c15dc8216 100644 --- a/bcs-services/bcs-bscp/cmd/data-service/service/template_binding_relation.go +++ b/bcs-services/bcs-bscp/cmd/data-service/service/template_binding_relation.go @@ -218,7 +218,8 @@ func (s *Service) ListTmplSetBoundCounts(ctx context.Context, req *pbds.ListTmpl } // ListTmplBoundUnnamedApps list template bound unnamed app details. -// nolint: funlen +// +//nolint:funlen func (s *Service) ListTmplBoundUnnamedApps(ctx context.Context, req *pbds.ListTmplBoundUnnamedAppsReq) ( *pbds.ListTmplBoundUnnamedAppsResp, error) { @@ -266,15 +267,21 @@ func (s *Service) ListTmplBoundUnnamedApps(ctx context.Context, details := make([]*pbtbr.TemplateBoundUnnamedAppDetail, 0) for _, r := range relations { for _, id := range r.TemplateRevisionIDs { + // if app doesn't exist, ignore the invalid record + if _, ok := appMap[r.AppID]; !ok { + continue + } // the template revision must belong to the target template - if _, ok := tmplRevisionMap[id]; ok { - details = append(details, &pbtbr.TemplateBoundUnnamedAppDetail{ - TemplateRevisionId: id, - TemplateRevisionName: tmplRevisionMap[id].Spec.RevisionName, - AppId: r.AppID, - AppName: appMap[r.AppID].Spec.Name, - }) + if _, ok := tmplRevisionMap[id]; !ok { + continue } + details = append(details, &pbtbr.TemplateBoundUnnamedAppDetail{ + TemplateRevisionId: id, + TemplateRevisionName: tmplRevisionMap[id].Spec.RevisionName, + AppId: r.AppID, + AppName: appMap[r.AppID].Spec.Name, + }) + } } @@ -328,6 +335,8 @@ func (s *Service) ListTmplBoundUnnamedApps(ctx context.Context, } // ListTmplBoundNamedApps list template bound named app details. +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted. // //nolint:funlen func (s *Service) ListTmplBoundNamedApps(ctx context.Context, @@ -390,16 +399,21 @@ func (s *Service) ListTmplBoundNamedApps(ctx context.Context, details := make([]*pbtbr.TemplateBoundNamedAppDetail, 0) for _, r := range relations { // the template revision must belong to the target template - if _, ok := tmplRevisionMap[r.TemplateRevisionID]; ok { - details = append(details, &pbtbr.TemplateBoundNamedAppDetail{ - TemplateRevisionId: r.TemplateRevisionID, - TemplateRevisionName: tmplRevisionMap[r.TemplateRevisionID].Spec.RevisionName, - AppId: r.AppID, - AppName: appMap[r.AppID].Spec.Name, - ReleaseId: r.ReleaseID, - ReleaseName: releaseMap[r.ReleaseID].Spec.Name, - }) + if _, ok := tmplRevisionMap[r.TemplateRevisionID]; !ok { + continue } + appName := "" + if _, ok := appMap[r.AppID]; ok { + appName = appMap[r.AppID].Spec.Name + } + details = append(details, &pbtbr.TemplateBoundNamedAppDetail{ + TemplateRevisionId: r.TemplateRevisionID, + TemplateRevisionName: tmplRevisionMap[r.TemplateRevisionID].Spec.RevisionName, + AppId: r.AppID, + AppName: appName, + ReleaseId: r.ReleaseID, + ReleaseName: releaseMap[r.ReleaseID].Spec.Name, + }) } // search by logic @@ -517,7 +531,8 @@ func (s *Service) ListTmplBoundTmplSets(ctx context.Context, } // ListMultiTmplBoundTmplSets list template bound template set details. -// nolint: funlen +// +//nolint:funlen func (s *Service) ListMultiTmplBoundTmplSets(ctx context.Context, req *pbds.ListMultiTmplBoundTmplSetsReq) ( *pbds.ListMultiTmplBoundTmplSetsResp, error) { @@ -659,6 +674,10 @@ func (s *Service) ListTmplRevisionBoundUnnamedApps(ctx context.Context, // combine resp details details := make([]*pbtbr.TemplateRevisionBoundUnnamedAppDetail, 0) for _, id := range appIDs { + // if app doesn't exist, ignore the invalid record + if _, ok := appMap[id]; !ok { + continue + } details = append(details, &pbtbr.TemplateRevisionBoundUnnamedAppDetail{ AppId: id, AppName: appMap[id].Spec.Name, @@ -713,7 +732,10 @@ func (s *Service) ListTmplRevisionBoundUnnamedApps(ctx context.Context, } // ListTmplRevisionBoundNamedApps list template revision bound named app details. -// nolint: funlen +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted. +// +//nolint:funlen func (s *Service) ListTmplRevisionBoundNamedApps(ctx context.Context, req *pbds.ListTmplRevisionBoundNamedAppsReq) ( *pbds.ListTmplRevisionBoundNamedAppsResp, error) { @@ -762,9 +784,13 @@ func (s *Service) ListTmplRevisionBoundNamedApps(ctx context.Context, // combine resp details details := make([]*pbtbr.TemplateRevisionBoundNamedAppDetail, 0) for _, r := range relations { + appName := "" + if _, ok := appMap[r.AppID]; ok { + appName = appMap[r.AppID].Spec.Name + } details = append(details, &pbtbr.TemplateRevisionBoundNamedAppDetail{ AppId: r.AppID, - AppName: appMap[r.AppID].Spec.Name, + AppName: appName, ReleaseId: r.ReleaseID, ReleaseName: releaseMap[r.ReleaseID].Spec.Name, }) @@ -849,6 +875,10 @@ func (s *Service) ListTmplSetBoundUnnamedApps(ctx context.Context, // combine resp details details := make([]*pbtbr.TemplateSetBoundUnnamedAppDetail, 0) for _, id := range appIDs { + // if app doesn't exist, ignore the invalid record + if _, ok := appMap[id]; !ok { + continue + } details = append(details, &pbtbr.TemplateSetBoundUnnamedAppDetail{ AppId: id, AppName: appMap[id].Spec.Name, @@ -883,7 +913,8 @@ func (s *Service) ListTmplSetBoundUnnamedApps(ctx context.Context, } // ListMultiTmplSetBoundUnnamedApps list template set bound unnamed app details. -// nolint: funlen +// +//nolint:funlen func (s *Service) ListMultiTmplSetBoundUnnamedApps(ctx context.Context, req *pbds.ListMultiTmplSetBoundUnnamedAppsReq) ( @@ -958,6 +989,10 @@ func (s *Service) ListMultiTmplSetBoundUnnamedApps(ctx context.Context, details := make([]*pbtbr.MultiTemplateSetBoundUnnamedAppDetail, 0) for tmplSetID, appIDs := range tmplSetAppsMap { for _, id := range appIDs { + // if app doesn't exist, ignore the invalid record + if _, ok := appMap[id]; !ok { + continue + } details = append(details, &pbtbr.MultiTemplateSetBoundUnnamedAppDetail{ TemplateSetId: tmplSetID, TemplateSetName: tmplSetMap[tmplSetID].Spec.Name, @@ -996,6 +1031,8 @@ func (s *Service) ListMultiTmplSetBoundUnnamedApps(ctx context.Context, } // ListTmplSetBoundNamedApps list template set bound named app details. +// Deprecated: not in use currently +// if use it, consider to add column app_name, release_name on table released_app_templates in case of app is deleted func (s *Service) ListTmplSetBoundNamedApps(ctx context.Context, req *pbds.ListTmplSetBoundNamedAppsReq) ( *pbds.ListTmplSetBoundNamedAppsResp, error) { @@ -1051,9 +1088,13 @@ func (s *Service) ListTmplSetBoundNamedApps(ctx context.Context, // combine resp details details := make([]*pbtbr.TemplateSetBoundNamedAppDetail, 0) for _, r := range uniqueRelations { + appName := "" + if _, ok := appMap[r.AppID]; ok { + appName = appMap[r.AppID].Spec.Name + } details = append(details, &pbtbr.TemplateSetBoundNamedAppDetail{ AppId: r.AppID, - AppName: appMap[r.AppID].Spec.Name, + AppName: appName, ReleaseId: r.ReleaseID, ReleaseName: releaseMap[r.ReleaseID].Spec.Name, }) @@ -1087,7 +1128,8 @@ func (s *Service) ListTmplSetBoundNamedApps(ctx context.Context, } // ListLatestTmplBoundUnnamedApps list the latest template bound unnamed app details. -// nolint: funlen +// +//nolint:funlen func (s *Service) ListLatestTmplBoundUnnamedApps(ctx context.Context, req *pbds.ListLatestTmplBoundUnnamedAppsReq) ( *pbds.ListLatestTmplBoundUnnamedAppsResp, error) { @@ -1158,6 +1200,10 @@ func (s *Service) ListLatestTmplBoundUnnamedApps(ctx context.Context, // combine resp details details := make([]*pbtbr.LatestTemplateBoundUnnamedAppDetail, 0) for _, appID := range appIDs { + // if app doesn't exist, ignore the invalid record + if _, ok := appMap[appID]; !ok { + continue + } details = append(details, &pbtbr.LatestTemplateBoundUnnamedAppDetail{ TemplateSetId: appTmplSetMap[appID], TemplateSetName: tmplSetMap[appTmplSetMap[appID]].Spec.Name, diff --git a/bcs-services/bcs-bscp/pkg/dal/dao/app.go b/bcs-services/bcs-bscp/pkg/dal/dao/app.go index 9f4cf93676..1354098dab 100644 --- a/bcs-services/bcs-bscp/pkg/dal/dao/app.go +++ b/bcs-services/bcs-bscp/pkg/dal/dao/app.go @@ -43,8 +43,8 @@ type App interface { ListAppsByGroupID(kit *kit.Kit, groupID, bizID uint32) ([]*table.App, error) // ListAppsByIDs list apps by app ids. ListAppsByIDs(kit *kit.Kit, ids []uint32) ([]*table.App, error) - // Delete one app instance. - Delete(kit *kit.Kit, app *table.App) error + // DeleteWithTx delete one app instance with transaction. + DeleteWithTx(kit *kit.Kit, tx *gen.QueryTx, app *table.App) error // ListAppMetaForCache list app's basic meta info. ListAppMetaForCache(kt *kit.Kit, bizID uint32, appID []uint32) (map[ /*appID*/ uint32]*types.AppCacheMeta, error) } @@ -249,8 +249,8 @@ func (dao *appDao) Update(kit *kit.Kit, g *table.App) error { return nil } -// Delete an app instance. -func (dao *appDao) Delete(kit *kit.Kit, g *table.App) error { +// DeleteWithTx delete one app instance with transaction. +func (dao *appDao) DeleteWithTx(kit *kit.Kit, tx *gen.QueryTx, g *table.App) error { if g == nil { return errors.New("app is nil") } @@ -260,50 +260,40 @@ func (dao *appDao) Delete(kit *kit.Kit, g *table.App) error { } // 删除操作, 获取当前记录做审计 - m := dao.genQ.App - q := dao.genQ.App.WithContext(kit.Ctx) + m := tx.App + q := tx.App.WithContext(kit.Ctx) oldOne, err := q.Where(m.ID.Eq(g.ID), m.BizID.Eq(g.BizID)).Take() if err != nil { return err } ad := dao.auditDao.DecoratorV2(kit, g.BizID).PrepareDelete(oldOne) - eDecorator := dao.event.Eventf(kit) - - // 多个使用事务处理 - deleteTx := func(tx *gen.Query) error { - q = tx.App.WithContext(kit.Ctx) - if _, err = q.Where(m.BizID.Eq(g.BizID)).Delete(g); err != nil { - return err - } - - // archived this deleted app to archive table. - if err = dao.archiveApp(kit, tx, oldOne); err != nil { - return err - } - - if err = ad.Do(tx); err != nil { - return err - } + if err = ad.Do(tx.Query); err != nil { + return err + } - // fire the event with txn to ensure the if save the event failed then the business logic is failed anyway. - one := types.Event{ - Spec: &table.EventSpec{ - Resource: table.Application, - ResourceID: g.ID, - OpType: table.DeleteOp, - }, - Attachment: &table.EventAttachment{BizID: g.BizID, AppID: g.ID}, - Revision: &table.CreatedRevision{Creator: kit.User}, - } - if err = eDecorator.Fire(one); err != nil { - logs.Errorf("fire delete app: %s event failed, err: %v, rid: %s", g.ID, err, kit.Rid) - return errors.New("fire event failed, " + err.Error()) - } + if _, err = q.Where(m.BizID.Eq(g.BizID)).Delete(g); err != nil { + return err + } - return nil + // archived this deleted app to archive table. + if err = dao.archiveApp(kit, tx, oldOne); err != nil { + return err } - err = dao.genQ.Transaction(deleteTx) + // fire the event with txn to ensure the if save the event failed then the business logic is failed anyway. + one := types.Event{ + Spec: &table.EventSpec{ + Resource: table.Application, + ResourceID: g.ID, + OpType: table.DeleteOp, + }, + Attachment: &table.EventAttachment{BizID: g.BizID, AppID: g.ID}, + Revision: &table.CreatedRevision{Creator: kit.User}, + } + eDecorator := dao.event.Eventf(kit) + if err = eDecorator.Fire(one); err != nil { + logs.Errorf("fire delete app: %s event failed, err: %v, rid: %s", g.ID, err, kit.Rid) + } eDecorator.Finalizer(err) if err != nil { @@ -351,7 +341,7 @@ func (dao *appDao) GetByName(kit *kit.Kit, bizID uint32, name string) (*table.Ap return app, nil } -func (dao *appDao) archiveApp(kit *kit.Kit, tx *gen.Query, g *table.App) error { +func (dao *appDao) archiveApp(kit *kit.Kit, tx *gen.QueryTx, g *table.App) error { id, err := dao.idGen.One(kit, table.ArchivedAppTable) if err != nil { return err diff --git a/bcs-services/bcs-bscp/pkg/dal/dao/app_template_binding.go b/bcs-services/bcs-bscp/pkg/dal/dao/app_template_binding.go index 6a1702bbfc..17ca4124f7 100644 --- a/bcs-services/bcs-bscp/pkg/dal/dao/app_template_binding.go +++ b/bcs-services/bcs-bscp/pkg/dal/dao/app_template_binding.go @@ -36,6 +36,8 @@ type AppTemplateBinding interface { List(kit *kit.Kit, bizID, appID uint32, opt *types.BasePage) ([]*table.AppTemplateBinding, int64, error) // Delete one app template binding instance. Delete(kit *kit.Kit, atb *table.AppTemplateBinding) error + // DeleteByAppIDWithTx delete one app template binding instance by app id with transaction. + DeleteByAppIDWithTx(kit *kit.Kit, tx *gen.QueryTx, appID uint32) error } var _ AppTemplateBinding = new(appTemplateBindingDao) @@ -210,6 +212,14 @@ func (dao *appTemplateBindingDao) Delete(kit *kit.Kit, g *table.AppTemplateBindi return nil } +// DeleteByAppIDWithTx delete one app template binding instance by app id with transaction. +func (dao *appTemplateBindingDao) DeleteByAppIDWithTx(kit *kit.Kit, tx *gen.QueryTx, appID uint32) error { + m := tx.AppTemplateBinding + q := tx.AppTemplateBinding.WithContext(kit.Ctx) + _, err := q.Where(m.AppID.Eq(appID)).Delete() + return err +} + // validateAttachmentExist validate if attachment resource exists before operating template func (dao *appTemplateBindingDao) validateAttachmentExist(kit *kit.Kit, am *table.AppTemplateBindingAttachment) error { m := dao.genQ.App From 1076c4d67c653d0ff3e3f574cc246142696e30d7 Mon Sep 17 00:00:00 2001 From: hitozhang Date: Thu, 12 Oct 2023 11:14:43 +0800 Subject: [PATCH 04/28] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=B0=8F=E9=97=AE=E9=A2=98=20(merge=20request=20!1455?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squash merge branch 'fix_10_12' into 'master' fix: 修复一些小问题 --- bcs-ui/frontend/src/i18n/en-US.yaml | 1 + bcs-ui/frontend/src/i18n/zh-CN.yaml | 1 + .../src/views/cluster-manage/node-list/add-cluster-node.vue | 2 +- .../views/plugin-manage/tools/log-collector/log-form.vue | 6 ++++-- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bcs-ui/frontend/src/i18n/en-US.yaml b/bcs-ui/frontend/src/i18n/en-US.yaml index 072c36b134..f4a1f2c42a 100644 --- a/bcs-ui/frontend/src/i18n/en-US.yaml +++ b/bcs-ui/frontend/src/i18n/en-US.yaml @@ -865,6 +865,7 @@ cluster: noModule: >- Enabling the Autoscaler component requires configuration of the CMDB topology module + noModule2: To add a node from a node pool, configure a transfer module notEmptyNodes: Please delete the nodes before removing the node pool. noEnableNodePool: >- Cluster Autoscaler requires at least one node pool to be enabled. diff --git a/bcs-ui/frontend/src/i18n/zh-CN.yaml b/bcs-ui/frontend/src/i18n/zh-CN.yaml index 827dc503b4..73ac4dbcba 100644 --- a/bcs-ui/frontend/src/i18n/zh-CN.yaml +++ b/bcs-ui/frontend/src/i18n/zh-CN.yaml @@ -740,6 +740,7 @@ cluster: cannotEnableScalerDownConfig: 集群自动扩缩容已关闭,无法单独开启自动缩容配置 cannotEnablePodsPriorityConfig: 集群自动扩缩容已关闭,无法单独开启低优先级 Pod 配置 noModule: 弹性伸缩需要配置扩容后转移模块 + noModule2: 从节点池添加节点需要配置扩容后转移模块 notEmptyNodes: 请删除节点后再删除节点池 noEnableNodePool: Cluster Autoscaler 需要至少一个节点池开启,请停用 Cluster Autoscaler 后再关闭 needMoreThanOneNodePoolOn: Cluster Autoscaler 需要至少一个节点池,请停用 Cluster Autoscaler 后再删除 diff --git a/bcs-ui/frontend/src/views/cluster-manage/node-list/add-cluster-node.vue b/bcs-ui/frontend/src/views/cluster-manage/node-list/add-cluster-node.vue index fde2919f46..5305fcd2ac 100644 --- a/bcs-ui/frontend/src/views/cluster-manage/node-list/add-cluster-node.vue +++ b/bcs-ui/frontend/src/views/cluster-manage/node-list/add-cluster-node.vue @@ -365,7 +365,7 @@ export default defineComponent({ $bkInfo({ type: 'warning', clsName: 'custom-info-confirm', - title: $i18n.t('cluster.ca.tips.noModule'), + title: $i18n.t('cluster.ca.tips.noModule2'), defaultInfo: true, okText: $i18n.t('cluster.ca.button.edit'), confirmFn: () => { diff --git a/bcs-ui/frontend/src/views/plugin-manage/tools/log-collector/log-form.vue b/bcs-ui/frontend/src/views/plugin-manage/tools/log-collector/log-form.vue index 857b0de930..79e6439c3b 100644 --- a/bcs-ui/frontend/src/views/plugin-manage/tools/log-collector/log-form.vue +++ b/bcs-ui/frontend/src/views/plugin-manage/tools/log-collector/log-form.vue @@ -15,8 +15,10 @@ From be3eb81ddb8c07413950155d18dc4ae12eb5d8c1 Mon Sep 17 00:00:00 2001 From: Yuikill <105910874+Yuikill@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:57:38 +0800 Subject: [PATCH 05/28] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AE=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=20=E7=89=88=E6=9C=AC=E5=AF=B9=E6=AF=94=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=87=E4=BB=B6=E5=B1=9E=E6=80=A7=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E5=92=8C=E5=AF=BC=E8=88=AA=E5=8A=9F=E8=83=BD=20(#2678)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 配置模板 版本对比添加文件属性对比和导航功能 * feat: 服务管理文件对比部分添加文件属性对比 --- .../bcs-bscp/ui/src/components/diff/index.vue | 17 +- .../ui/src/components/diff/navigator.vue | 172 ++++++++++++++++++ .../bcs-bscp/ui/src/components/diff/text.vue | 136 +++++++++++++- .../version-diff/aside-menu/configs.vue | 53 +++++- .../tables/table-with-templates.vue | 11 +- .../list/components/create-service.vue | 10 +- .../version-manage/template-version-diff.vue | 6 +- .../version-manage/version-full-table.vue | 6 +- bcs-services/bcs-bscp/ui/types/config.ts | 5 + bcs-services/bcs-bscp/ui/types/service.ts | 10 + bcs-services/bcs-bscp/ui/types/template.ts | 12 ++ 11 files changed, 412 insertions(+), 26 deletions(-) create mode 100644 bcs-services/bcs-bscp/ui/src/components/diff/navigator.vue diff --git a/bcs-services/bcs-bscp/ui/src/components/diff/index.vue b/bcs-services/bcs-bscp/ui/src/components/diff/index.vue index 29ad022785..d6ede1c92a 100644 --- a/bcs-services/bcs-bscp/ui/src/components/diff/index.vue +++ b/bcs-services/bcs-bscp/ui/src/components/diff/index.vue @@ -23,13 +23,16 @@ :language="props.diff.current.language" :current="(props.diff.current.content as string)" :current-variables="props.diff.current.variables" + :current-permission="currentPermission" :base="(props.diff.base.content as string)" - :base-variables="props.diff.base.variables" /> + :base-variables="props.diff.base.variables" + :base-permission="basePermission"/> diff --git a/bcs-services/bcs-bscp/ui/src/components/diff/text.vue b/bcs-services/bcs-bscp/ui/src/components/diff/text.vue index fd9f02dcdc..bf11ebae2a 100644 --- a/bcs-services/bcs-bscp/ui/src/components/diff/text.vue +++ b/bcs-services/bcs-bscp/ui/src/components/diff/text.vue @@ -1,8 +1,20 @@ diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue index d2efc80b37..5b4b400fa6 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue @@ -31,7 +31,14 @@ v-overflow-title :key="config.id" :class="['config-item', { actived: getItemSelectedStatus(group.id, config) }]" - @click="handleSelectItem({ pkgId: group.id, id: config.id, version: config.template_revision_id })" + @click=" + handleSelectItem({ + pkgId: group.id, + id: config.id, + version: config.template_revision_id, + permission: config.permission, + }) + " > {{ config.name }} @@ -85,12 +92,21 @@ interface IConfigMenuItem { byte_size: string; signature: string; template_revision_id: number; + permission?: IPermissionType; +} + +interface IPermissionType { + privilege: string; + user: string; + user_group: string; } interface IConfigDiffItem extends IConfigMenuItem { diff_type: string; current: string; base: string; + currentPermission?: IPermissionType; + basePermission?: IPermissionType; } interface IConfigsGroupData { @@ -116,7 +132,7 @@ const props = withDefaults( { unNamedVersionVariables: () => [], selectedConfig: () => ({ pkgId: 0, id: 0, version: 0 }), - }, + } ); const emits = defineEmits(['selected']); @@ -150,7 +166,7 @@ watch( aggregatedList.value = calcDiff(); groupedConfigListOnShow.value = aggregatedList.value.slice(); setDefaultSelected(); - }, + } ); // 当前版本默认选中的配置项 @@ -163,7 +179,7 @@ watch( }, { immediate: true, - }, + } ); onMounted(async () => { @@ -229,7 +245,7 @@ const getCommonConfigList = async (id: number): Promise => expand: true, configs: configs.map((config) => { const { id, spec, commit_spec, revision, file_state } = config; - const { name, file_type } = spec; + const { name, file_type, permission } = spec; const { origin_byte_size, byte_size, origin_signature, signature } = commit_spec.content; return { type: 'config', @@ -241,6 +257,7 @@ const getCommonConfigList = async (id: number): Promise => byte_size: unNamedVersion ? byte_size : origin_byte_size, signature: unNamedVersion ? signature : origin_signature, template_revision_id: 0, + permission, }; }), }, @@ -336,6 +353,8 @@ const calcDiff = () => { diff_type: '', current: crtItem.signature, base: baseItem.signature, + basePermission: baseItem.permission, + currentPermission: crtItem.permission, }; if (crtItem.template_revision_id !== baseItem.template_revision_id || diffConfig.current !== diffConfig.base) { diffCount.value += 1; @@ -350,6 +369,7 @@ const calcDiff = () => { diff_type: isBaseVersionExist.value ? 'add' : '', current: crtItem.signature, base: '', + currentPermission: crtItem.permission, }); } }); @@ -360,7 +380,7 @@ const calcDiff = () => { // 计算当前版本删除项 baseGroupList.value.forEach((baseGroupItem) => { const { template_space_id, id, name, expand, configs } = baseGroupItem; - const groupIndex = list.findIndex(item => item.id === baseGroupItem.id); + const groupIndex = list.findIndex((item) => item.id === baseGroupItem.id); const diffGroup: IDiffGroupData = groupIndex > -1 ? list[groupIndex] : { template_space_id, id, name, expand, configs: [] }; @@ -385,6 +405,7 @@ const calcDiff = () => { diff_type: isBaseVersionExist.value ? 'delete' : '', current: '', base: baseItem.signature, + basePermission: baseItem.permission, }); } }); @@ -401,13 +422,13 @@ const calcDiff = () => { // 否则取第一个非空分组的第一个配置项 const setDefaultSelected = () => { if (props.selectedConfig.id) { - const pkg = aggregatedList.value.find(group => group.id === props.selectedConfig.pkgId); + const pkg = aggregatedList.value.find((group) => group.id === props.selectedConfig.pkgId); if (pkg) { pkg.expand = true; } handleSelectItem(props.selectedConfig); } else { - const group = aggregatedList.value.find(group => group.configs.length > 0); + const group = aggregatedList.value.find((group) => group.configs.length > 0); if (group) { handleSelectItem({ pkgId: group.id, id: group.configs[0].id, version: group.configs[0].template_revision_id }); } @@ -451,7 +472,7 @@ const getItemSelectedStatus = (pkgId: number, config: IConfigDiffItem) => { // 选择对比配置项后,加载配置项详情,组装对比数据 const handleSelectItem = async (selectedConfig: IConfigDiffSelected) => { - const pkg = aggregatedList.value.find(item => item.id === selectedConfig.pkgId); + const pkg = aggregatedList.value.find((item) => item.id === selectedConfig.pkgId); if (pkg) { const config = pkg.configs.find((item) => { const res = item.id === selectedConfig.id && item.template_revision_id === selectedConfig.version; @@ -468,7 +489,17 @@ const handleSelectItem = async (selectedConfig: IConfigDiffSelected) => { const getConfigDiffDetail = async (config: IConfigDiffItem) => { let currentConfigContent: string | IFileConfigContentSummary = ''; let baseConfigContent: string | IFileConfigContentSummary = ''; - const { id, name, file_type, update_at, byte_size, current: currentSignature, base: baseSignature } = config; + const { + id, + name, + file_type, + update_at, + byte_size, + current: currentSignature, + base: baseSignature, + currentPermission, + basePermission, + } = config; if (config.current) { currentConfigContent = await loadConfigContent({ @@ -497,10 +528,12 @@ const getConfigDiffDetail = async (config: IConfigDiffItem) => { base: { content: baseConfigContent, variables: baseVariables.value, + permission: basePermission, }, current: { content: currentConfigContent, variables: currentVariables.value, + permission: currentPermission, }, }; }; diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/tables/table-with-templates.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/tables/table-with-templates.vue index 41b1528f66..2cf2639997 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/tables/table-with-templates.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/tables/table-with-templates.vue @@ -219,6 +219,12 @@ interface IConfigsGroupData { configs: IConfigTableItem[]; } +interface IPermissionType { + privilege: string; + user: string; + user_group: string; +} + interface IConfigTableItem { id: number; name: string; @@ -229,6 +235,7 @@ interface IConfigTableItem { reviser: string; update_at: string; file_state: string; + permission?: IPermissionType; } const configStore = useConfigStore(); @@ -392,7 +399,7 @@ const transListToTableData = () => { const transConfigsToTableItemData = (list: IConfigItem[]) => list.map((item: IConfigItem) => { const { id, spec, revision, file_state } = item; - const { name, path } = spec; + const { name, path, permission } = spec; const { creator, reviser, update_at } = revision; return { id, @@ -404,6 +411,7 @@ const transConfigsToTableItemData = (list: IConfigItem[]) => reviser, update_at: datetimeFormat(update_at), file_state, + permission, }; }); @@ -505,6 +513,7 @@ const handleConfigDiff = (groupId: number, config: IConfigTableItem) => { pkgId: groupId, id: config.id, version: config.versionId, + permission: config.permission, }; isDiffPanelShow.value = true; }; diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/create-service.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/create-service.vue index 347bbf42b1..73dc3e65c5 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/create-service.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/create-service.vue @@ -16,7 +16,13 @@ /> - + @@ -97,7 +103,7 @@ watch( formData.value.name = ''; formData.value.memo = ''; } - }, + } ); const handleCreateConfirm = async () => { diff --git a/bcs-services/bcs-bscp/ui/src/views/space/templates/version-manage/template-version-diff.vue b/bcs-services/bcs-bscp/ui/src/views/space/templates/version-manage/template-version-diff.vue index 3f0fb38730..ab0ced023b 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/templates/version-manage/template-version-diff.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/templates/version-manage/template-version-diff.vue @@ -41,7 +41,7 @@ + diff --git a/bcs-services/bcs-bscp/ui/src/utils/login.ts b/bcs-services/bcs-bscp/ui/src/utils/login.ts index 9fb1324f0c..590898f4fe 100644 --- a/bcs-services/bcs-bscp/ui/src/utils/login.ts +++ b/bcs-services/bcs-bscp/ui/src/utils/login.ts @@ -5,7 +5,7 @@ const isCrossOrigin = isCrossOriginIFrame(); const topWindow: Window = isCrossOrigin ? window : window.top; const topDocument = topWindow.document; -const openLoginDialog = (src, width = 460, height = 490) => { +const openLoginDialog = (src, width = 460, height = 560) => { if (!src) return; const isWraperExit = topDocument.querySelector('#bk-gloabal-login-iframe'); if (isWraperExit) return; diff --git a/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue index 3364d86bcf..945b050850 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue @@ -332,6 +332,7 @@ const handleVersionEditSubmitted = async ( scriptDetail.value.not_release_id ); createBtnDisabled.value = false; + handleEditVersionClick() } else { // 如果是编辑旧版本,则直接修改版本数据 const { memo, content } = data; diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/service-list-content.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/service-list-content.vue index 5f446dddb9..6e879bfe3d 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/service-list-content.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/list/components/service-list-content.vue @@ -239,7 +239,7 @@ const handleLimitChange = (limit: number) => { + + diff --git a/bcs-services/bcs-bscp/ui/src/views/space/groups/components/group-edit-form.vue b/bcs-services/bcs-bscp/ui/src/views/space/groups/components/group-edit-form.vue index 8e71a9b0f6..06b30d151d 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/groups/components/group-edit-form.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/groups/components/group-edit-form.vue @@ -137,7 +137,7 @@ watch( () => props.group, (val) => { formData.value = cloneDeep(val); - } + }, ); onMounted(() => { diff --git a/bcs-services/bcs-bscp/ui/src/views/space/groups/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/groups/index.vue index 5e1a58e8b2..5fe32a79e0 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/groups/index.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/groups/index.vue @@ -310,12 +310,12 @@ const handleSearch = () => { const searchArr = [...groupNameList, ...groupRuleList]; const uniqueIds = new Set(); // 用于记录已经出现过的id searchGroupList.value = searchArr.filter((obj) => { - if (uniqueIds.has(obj.id)) { - return false; - } - uniqueIds.add(obj.id); - return true; - }); + if (uniqueIds.has(obj.id)) { + return false; + } + uniqueIds.add(obj.id); + return true; + }); isSearchEmpty.value = true; } refreshTableData(); diff --git a/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue index 945b050850..0b9e6e32e8 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/scripts/version-manage/index.vue @@ -177,7 +177,7 @@ onMounted(async () => { unPublishVersion.value = await getScriptVersionDetail( spaceId.value, scriptId.value, - scriptDetail.value.not_release_id + scriptDetail.value.not_release_id, ); } initLoading.value = false; @@ -318,7 +318,7 @@ const handleSelectVersion = (version: IScriptVersion) => { // 新建、编辑脚本后回调 const handleVersionEditSubmitted = async ( data: { id: number; name: string; memo: string; content: string }, - type: string + type: string, ) => { versionEditData.value.form = { ...data }; refreshList(); @@ -329,7 +329,7 @@ const handleVersionEditSubmitted = async ( unPublishVersion.value = await getScriptVersionDetail( spaceId.value, scriptId.value, - scriptDetail.value.not_release_id + scriptDetail.value.not_release_id, ); createBtnDisabled.value = false; handleEditVersionClick() diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/select-group/tree.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/select-group/tree.vue index 566e7f174e..dd33befd62 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/select-group/tree.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/components/publish-version/select-group/tree.vue @@ -111,11 +111,11 @@ const categorizingData = (groupList: IGroupToPublish[]) => { // id为0表示默认分组,在分组节点树中不可选 return; } - const checked = props.value.findIndex((item) => item.id === group.id) > -1; + const checked = props.value.findIndex(item => item.id === group.id) > -1; const disabled = props.disabled.includes(group.id); group.rules.forEach((rule) => { const nodeId = `${rule.key}_${group.id}`; // 用在节点树上做唯一标识 - const parentNode = treeNodeData.find((item) => item.node_id === rule.key); + const parentNode = treeNodeData.find(item => item.node_id === rule.key); const nodeData = { ...group, node_id: nodeId, checked, disabled }; if (parentNode) { parentNode.count += 1; @@ -144,15 +144,14 @@ const categorizingData = (groupList: IGroupToPublish[]) => { // 父级分类节点是否选中 const isParentNodeChecked = (node: ITreeParentNodeData) => { - const res = node.children.length > 0 && node.children.every((group) => group.checked); + const res = node.children.length > 0 && node.children.every(group => group.checked); return res; }; // 父级分类节点是否半选 -const isParentNodeIndeterminate = (node: ITreeParentNodeData) => - node.children.length > 0 && - !node.children.every((group) => group.checked) && - node.children.some((group) => group.checked); +const isParentNodeIndeterminate = (node: ITreeParentNodeData) => node.children.length > 0 && + !node.children.every(group => group.checked) && + node.children.some(group => group.checked); const props = defineProps<{ groupListLoading: boolean; @@ -183,14 +182,14 @@ watch( (val) => { categorizingData(val); }, - { immediate: true } + { immediate: true }, ); // 选中小组变更 watch( () => props.value, (val) => { - const ids = val.map((item) => item.id); + const ids = val.map(item => item.id); treeData.value.forEach((parentNode) => { parentNode.children.forEach((node) => { node.checked = ids.includes(node.id); @@ -198,15 +197,15 @@ watch( parentNode.checked = isParentNodeChecked(parentNode); parentNode.indeterminate = isParentNodeIndeterminate(parentNode); }); - } + }, ); // 全选 const handleSelectAll = () => { const groupList: IGroupToPublish[] = []; props.groupList.forEach((group) => { - const hasGroupChecked = props.value.findIndex((item) => item.id === group.id) > -1; // 分组在编辑前是否选中 - const hasAdded = groupList.findIndex((item) => item.id === group.id) > -1; // 分组已添加 + const hasGroupChecked = props.value.findIndex(item => item.id === group.id) > -1; // 分组在编辑前是否选中 + const hasAdded = groupList.findIndex(item => item.id === group.id) > -1; // 分组已添加 const isDisabled = props.disabled.includes(group.id); if (group.id !== 0 && !hasAdded && (!isDisabled || hasGroupChecked)) { groupList.push(group); @@ -218,7 +217,7 @@ const handleSelectAll = () => { // 全不选 const handleClearAll = () => { const hasCheckedGroups = props.groupList.filter((group) => { - const res = props.disabled.includes(group.id) && props.value.findIndex((item) => item.id === group.id) > -1; + const res = props.disabled.includes(group.id) && props.value.findIndex(item => item.id === group.id) > -1; return res; }); emits('change', hasCheckedGroups); @@ -234,7 +233,7 @@ const handleSelectVersion = (versions: number[]) => { } else { // 选择部分 versions.forEach((id) => { - const version = props.versionList.find((item) => item.id === id); + const version = props.versionList.find(item => item.id === id); if (version) { selectedVersion.push(version); } @@ -242,8 +241,8 @@ const handleSelectVersion = (versions: number[]) => { } selectedVersion.forEach((version) => { version.status.released_groups.forEach((releaseItem) => { - if (!list.find((item) => releaseItem.id === item.id)) { - const group = allGroupNode.value.find((groupItem) => groupItem.id === releaseItem.id); + if (!list.find(item => releaseItem.id === item.id)) { + const group = allGroupNode.value.find(groupItem => groupItem.id === releaseItem.id); if (group) { list.push(group); } @@ -264,21 +263,21 @@ const handleNodeCheckChange = (node: IGroupNodeData | ITreeParentNodeData, check const list = props.value.slice(); if (Object.prototype.hasOwnProperty.call(node, 'parent')) { // 分类节点 - const treeParentNode = treeData.value.find((parentNode) => parentNode.node_id === node.node_id); + const treeParentNode = treeData.value.find(parentNode => parentNode.node_id === node.node_id); if (treeParentNode) { if (checked) { treeParentNode.children - .filter((group) => !group.disabled) + .filter(group => !group.disabled) .forEach((group) => { - if (!list.find((item) => item.id === group.id)) { + if (!list.find(item => item.id === group.id)) { list.push(group); } }); } else { treeParentNode.children - .filter((group) => !group.disabled) + .filter(group => !group.disabled) .forEach((group) => { - const index = list.findIndex((item) => item.id === group.id); + const index = list.findIndex(item => item.id === group.id); if (index > -1) { list.splice(index, 1); } @@ -287,12 +286,12 @@ const handleNodeCheckChange = (node: IGroupNodeData | ITreeParentNodeData, check } } else { // 叶子节点 - const group = props.groupList.find((group) => group.id === (node as IGroupNodeData).id); + const group = props.groupList.find(group => group.id === (node as IGroupNodeData).id); if (group) { if (checked) { list.push(group); } else { - const index = list.findIndex((item) => item.id === group.id); + const index = list.findIndex(item => item.id === group.id); list.splice(index, 1); } } diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue index 5b4b400fa6..7878d3e453 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/components/version-diff/aside-menu/configs.vue @@ -45,14 +45,13 @@ - - 搜索结果为空 - + @@ -81,6 +80,7 @@ import { import { getReleasedAppVariables } from '../../../../../../../../api/variable'; import { byteUnitConverse } from '../../../../../../../../utils'; import SearchInput from '../../../../../../../../components/search-input.vue'; +import tableEmpty from '../../../../../../../../components/table/table-empty.vue'; interface IConfigMenuItem { type: string; @@ -568,6 +568,12 @@ const loadConfigContent = async ({ const configContent = await downloadConfigContent(bkBizId.value, appData.value.id as number, signature); return String(configContent); }; + +// 清空筛选条件 +const clearStr = () => { + searchStr.value = ''; + handleSearch(); +}; + + diff --git a/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-import.vue b/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-import.vue new file mode 100644 index 0000000000..5cbd50b8ad --- /dev/null +++ b/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-import.vue @@ -0,0 +1,55 @@ + + + + + + + diff --git a/bcs-services/bcs-bscp/ui/src/views/space/variables/variables-content-editor.vue b/bcs-services/bcs-bscp/ui/src/views/space/variables/variables-content-editor.vue new file mode 100644 index 0000000000..378230a25f --- /dev/null +++ b/bcs-services/bcs-bscp/ui/src/views/space/variables/variables-content-editor.vue @@ -0,0 +1,211 @@ + + + diff --git a/bcs-services/bcs-bscp/ui/types/variable.ts b/bcs-services/bcs-bscp/ui/types/variable.ts index 5555e0f7e8..2dfca5399c 100644 --- a/bcs-services/bcs-bscp/ui/types/variable.ts +++ b/bcs-services/bcs-bscp/ui/types/variable.ts @@ -36,3 +36,9 @@ export interface IVariableCitedByConfigDetailItem { path: string; }[] } + +// 批量导入参数 +export interface IVariableImportParams { + separator: string; + variables: string; +} From b1558595d054c05c1f26835049c055e92aa0476d Mon Sep 17 00:00:00 2001 From: hitozhang Date: Thu, 19 Oct 2023 11:05:56 +0800 Subject: [PATCH 21/28] =?UTF-8?q?fix:=20--bug=3D115343773=20=E3=80=90SG?= =?UTF-8?q?=E3=80=91=E8=8A=82=E7=82=B9=E6=B1=A0=E5=8F=AF=E7=94=A8=E5=8C=BA?= =?UTF-8?q?=E4=B8=8E=E5=AD=90=E7=BD=91=E6=B2=A1=E6=9C=89=E8=81=94=E5=8A=A8?= =?UTF-8?q?=20(merge=20request=20!1466)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squash merge branch 'bugfix_nodepool' into 'master' fix: --bug=115343773 【SG】节点池可用区与子网没有联动 TAPD: --bug=115343773 --- bcs-ui/frontend/src/i18n/en-US.yaml | 2 +- .../cluster/autoscaler/tencent/node-config.vue | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/bcs-ui/frontend/src/i18n/en-US.yaml b/bcs-ui/frontend/src/i18n/en-US.yaml index f4a1f2c42a..51af204ec1 100644 --- a/bcs-ui/frontend/src/i18n/en-US.yaml +++ b/bcs-ui/frontend/src/i18n/en-US.yaml @@ -865,7 +865,7 @@ cluster: noModule: >- Enabling the Autoscaler component requires configuration of the CMDB topology module - noModule2: To add a node from a node pool, configure a transfer module + noModule2: 'To add a node from a node pool, configure a transfer module' notEmptyNodes: Please delete the nodes before removing the node pool. noEnableNodePool: >- Cluster Autoscaler requires at least one node pool to be enabled. diff --git a/bcs-ui/frontend/src/views/cluster-manage/cluster/autoscaler/tencent/node-config.vue b/bcs-ui/frontend/src/views/cluster-manage/cluster/autoscaler/tencent/node-config.vue index ceb333a0c1..e33113da6b 100644 --- a/bcs-ui/frontend/src/views/cluster-manage/cluster/autoscaler/tencent/node-config.vue +++ b/bcs-ui/frontend/src/views/cluster-manage/cluster/autoscaler/tencent/node-config.vue @@ -438,7 +438,7 @@ error-display-type="normal" required> @@ -452,7 +452,7 @@ - + diff --git a/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-edit.vue b/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-edit.vue index 8936615578..e2b79afeba 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-edit.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/variables/variable-edit.vue @@ -4,7 +4,7 @@
- 编辑 + 保存 取消
@@ -55,7 +55,7 @@ watch( prefix.value = currentPrefix; variableConfig.value = { ...props.data, name }; } - }, + } ); const handleFormChange = (val: IVariableEditParams, localPrefix: string) => { From c8bd99a67350ec8d84098862a6613a2f8e6ecda5 Mon Sep 17 00:00:00 2001 From: jonesyang12 <130545229+jonesyang12@users.noreply.github.com> Date: Mon, 23 Oct 2023 10:04:05 +0800 Subject: [PATCH 26/28] feature: gameworkload rollout (#2697) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gameworkload rollout * patchType 修改 * 代码规范修改 --- .../cloudprovider/ladder/tasks/utils.go | 2 +- .../qcloud-public/business/node.go | 7 +- .../qcloud-public/business/tke.go | 2 +- .../qcloud-public/business/types.go | 3 +- .../cloudprovider/qcloud-public/nodemgr.go | 3 +- .../qcloud-public/tasks/utils.go | 1 + .../cloudprovider/qcloud-public/utils.go | 4 +- .../cloudprovider/qcloud-public/vpcmgr.go | 2 +- .../internal/cloudprovider/qcloud/api/node.go | 6 +- .../internal/cloudprovider/qcloud/api/tag.go | 6 +- .../cloudprovider/qcloud/api/utils.go | 2 - .../internal/cloudprovider/qcloud/api/vpc.go | 9 +- .../cloudprovider/qcloud/business/network.go | 7 +- .../qcloud/business/network_test.go | 4 +- .../cloudprovider/qcloud/business/node.go | 6 +- .../cloudprovider/qcloud/business/tke.go | 2 +- .../cloudprovider/qcloud/business/types.go | 3 +- .../internal/cloudprovider/qcloud/nodemgr.go | 3 +- .../cloudprovider/qcloud/tasks/utils.go | 1 + .../internal/cloudprovider/qcloud/vpcmgr.go | 2 +- .../internal/remote/cidrtree/cidr.go | 14 +- .../internal/remote/cidrtree/cidr_test.go | 5 +- .../internal/remote/cidrtree/interface.go | 2 +- .../internal/remote/cidrtree/utils.go | 10 +- bcs-services/cluster-resources/go.mod | 23 + .../pkg/action/resource/resource.go | 7 +- .../pkg/handler/customresource/cobj.go | 76 + .../pkg/resource/client/cobj.go | 368 + .../pkg/resource/client/history.go | 224 + .../cluster-resources/cluster-resources.pb.go | 11396 +++++----------- .../cluster-resources.pb.gw.go | 573 + .../cluster-resources.pb.micro.go | 87 + .../cluster-resources.pb.validate.go | 521 + .../cluster-resources/cluster-resources.proto | 98 + .../cluster-resources.swagger.json | 239 + .../cluster-resources_grpc.pb.go | 5833 ++++++++ 36 files changed, 11247 insertions(+), 8304 deletions(-) create mode 100644 bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go index 1053d7f679..4358b7e6cd 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go @@ -16,9 +16,9 @@ import ( "context" "fmt" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/avast/retry-go" - "github.com/Tencent/bk-bcs/bcs-common/common/blog" proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go index f1909a0b85..2cff7fc65e 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go @@ -4,12 +4,13 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package business xxx package business import ( @@ -20,14 +21,14 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/common" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cmdb" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) // GetCVMImageIDByImageName get image info by image name diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go index 17155a5067..6996105d2b 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go index 5227a9650c..09eebe0fdf 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -16,6 +16,7 @@ import ( "strings" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go index 3f315e99f5..bad315d612 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,6 +20,7 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go index fb8626f703..a9bc60310f 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go @@ -19,6 +19,7 @@ import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-common/pkg/odm/drivers" + cmproto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go index 144765e5ab..79418eefa1 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go @@ -42,9 +42,9 @@ const ( // tkeCleanNodeTaskTemplate bk-sops add task template tkeCleanNodeTaskTemplate = "tke-remove node: %s" // tkeAddExternalNodeTaskTemplate bk-sops add task template - tkeAddExternalNodeTaskTemplate = "tke-add external node: %s" + tkeAddExternalNodeTaskTemplate = "tke-add external node: %s" // nolint // tkeCleanExternalNodeTaskTemplate bk-sops add task template - tkeCleanExternalNodeTaskTemplate = "tke-remove external node: %s" + tkeCleanExternalNodeTaskTemplate = "tke-remove external node: %s" // nolint // importClusterTaskTemplate bk-sops add task template importClusterTaskTemplate = "tke-import cluster: %s" // createNodeGroupTaskTemplate bk-sops add task template diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go index 0d122e8857..6f206af1d8 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go index 5d8a4519d4..e9c47cc61a 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go @@ -16,12 +16,12 @@ import ( "fmt" "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" ) // GetCVMClient get cvm client from common option diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go index 150f369c02..549befc6ee 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -14,11 +14,11 @@ package api import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tag "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag/v20180813" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" ) const ( diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go index 4f6747a22e..c36973f490 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go @@ -26,8 +26,6 @@ import ( const ( limit = 100 - - maxFilterValues = 5 ) // FilterKey tke interface filterKey diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go index cf7215d026..9147052e57 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go @@ -18,12 +18,12 @@ import ( "strconv" "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" ) // NewVPCClient init VPC client @@ -48,6 +48,7 @@ func NewVPCClient(opt *cloudprovider.CommonOption) (*VpcClient, error) { return &VpcClient{client: cli}, nil } +// VpcClient xxx type VpcClient struct { client *vpc.Client } @@ -275,7 +276,7 @@ func (v *VpcClient) CheckAssistantCidr(vpcId string, news []string, olds []strin req := vpc.NewCheckAssistantCidrRequest() req.VpcId = common.StringPtr(vpcId) req.NewCidrBlocks = common.StringPtrs(news) - //req.OldCidrBlocks = common.StringPtrs(olds) + // req.OldCidrBlocks = common.StringPtrs(olds) resp, err := v.client.CheckAssistantCidr(req) if err != nil { diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go index 36b96fa107..e6e44b3d46 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go @@ -4,24 +4,25 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package business xxx package business import ( "fmt" "net" + vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cidrtree" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" ) // GetVpcCIDRBlocks 获取vpc所属的cidr段 diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go index 6640b81d98..7892f7d8f9 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -38,4 +38,4 @@ func TestAllocateSubnet(t *testing.T) { } t.Log(sub) -} \ No newline at end of file +} diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go index f1909a0b85..fc99b1dd87 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,14 +20,14 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/common" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cmdb" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) // GetCVMImageIDByImageName get image info by image name diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go index 02a1482d40..4da8bf1275 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go index 5227a9650c..09eebe0fdf 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -16,6 +16,7 @@ import ( "strings" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go index 2581efd65e..2cdb149a2e 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,6 +20,7 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go index a5412e5339..ee3dfec2ae 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go @@ -19,6 +19,7 @@ import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-common/pkg/odm/drivers" + cmproto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go index 0d122e8857..6f206af1d8 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go index b2cc54acd1..edcd70eff1 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go @@ -4,12 +4,13 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package cidrtree xxx package cidrtree import ( @@ -20,6 +21,7 @@ import ( "github.com/pkg/errors" ) +// ErrNoEnoughFreeSubnet xxx var ErrNoEnoughFreeSubnet = errors.New("no enough free subnet") // Mananger define interface to manage cidr @@ -40,10 +42,14 @@ func NewCidrManager(cidrBlock *net.IPNet, subnets []*net.IPNet) Mananger { } const ( + // NODE_UNUSED unused NODE_UNUSED byte = 0 - NODE_USED byte = 1 - NODE_SPLIT byte = 2 - NODE_FULL byte = 3 + // NODE_USED use + NODE_USED byte = 1 + // NODE_SPLIT split + NODE_SPLIT byte = 2 + // NODE_FULL fill + NODE_FULL byte = 3 // nolint ) type node struct { diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go index 25bdc0b2ef..e70cc33a96 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -13,10 +13,9 @@ package cidrtree import ( - "testing" - "fmt" "net" + "testing" ) func TestNewCidrManager(t *testing.T) { diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go index b4402bf142..9f3ed0f3f8 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go index 51d2858e86..47d80d9066 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -62,6 +62,7 @@ func GetFreeIPNets(allBlocks, allExistingSubnets []*net.IPNet) []*net.IPNet { exsits := filterSubnet(block, allExistingSubnets) man := NewCidrManager(block, exsits) + // nolint for _, free := range man.GetFrees() { allFrees = append(allFrees, free) } @@ -71,16 +72,17 @@ func GetFreeIPNets(allBlocks, allExistingSubnets []*net.IPNet) []*net.IPNet { // filterSubnet cidr filter allocated subnets func filterSubnet(cidrBlock *net.IPNet, subnets []*net.IPNet) []*net.IPNet { - var filterd []*net.IPNet + var filtered []*net.IPNet for _, subnet := range subnets { if cidrContains(cidrBlock, subnet) { - filterd = append(filterd, subnet) + filtered = append(filtered, subnet) } } - return filterd + return filtered } // subnet exist reserved cidrs +// nolint func inReserved(subnet *net.IPNet, reservedBlocks []*net.IPNet) bool { for _, r := range reservedBlocks { if cidrContains(r, subnet) { diff --git a/bcs-services/cluster-resources/go.mod b/bcs-services/cluster-resources/go.mod index bddb676390..0c365302b2 100644 --- a/bcs-services/cluster-resources/go.mod +++ b/bcs-services/cluster-resources/go.mod @@ -4,12 +4,33 @@ go 1.20 replace ( k8s.io/api => k8s.io/api v0.23.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.1 k8s.io/apimachinery => k8s.io/apimachinery v0.23.1 + k8s.io/apiserver => k8s.io/apiserver v0.23.1 k8s.io/cli-runtime => k8s.io/cli-runtime v0.23.1 k8s.io/client-go => k8s.io/client-go v0.23.1 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.23.1 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.1 + k8s.io/code-generator => k8s.io/code-generator v0.23.1 + k8s.io/component-base => k8s.io/component-base v0.23.1 + k8s.io/component-helpers => k8s.io/component-helpers v0.23.1 + k8s.io/controller-manager => k8s.io/controller-manager v0.23.1 + k8s.io/cri-api => k8s.io/cri-api v0.23.1 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.23.1 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.1 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.23.1 k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.23.1 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.23.1 k8s.io/kubectl => k8s.io/kubectl v0.23.1 k8s.io/kubectl/pkg/polymorphichelpers => k8s.io/kubectl/pkg/polymorphichelpers v0.26.1 + k8s.io/kubelet => k8s.io/kubelet v0.23.1 + k8s.io/kubernetes => k8s.io/kubernetes v1.23.1 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.23.1 + k8s.io/metrics => k8s.io/metrics v0.23.1 + k8s.io/mount-utils => k8s.io/mount-utils v0.23.1 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.23.1 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.23.1 sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.10.1 sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.13.0 sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.3.0 @@ -211,6 +232,7 @@ require ( require ( github.com/Tencent/bk-bcs/bcs-common/pkg/audit v0.0.0-20230921024236-fc3b5f7e6d87 github.com/Tencent/bk-bcs/bcs-common/pkg/auth v0.0.0-20230921024236-fc3b5f7e6d87 + github.com/Tencent/bk-bcs/bcs-scenarios/kourse v0.0.0-20231011121510-d30829b961ad github.com/go-redis/redis/extra/redisotel/v8 v8.11.5 github.com/googleapis/gnostic v0.5.5 go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo v0.44.0 @@ -249,6 +271,7 @@ require ( k8s.io/cli-runtime v0.28.0 // indirect k8s.io/component-base v0.28.0 // indirect k8s.io/klog v1.0.0 // indirect + k8s.io/kubernetes v0.0.0-00010101000000-000000000000 // indirect sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/kustomize/kyaml v0.14.2 // indirect ) diff --git a/bcs-services/cluster-resources/pkg/action/resource/resource.go b/bcs-services/cluster-resources/pkg/action/resource/resource.go index 0ef20c6b89..04789802ff 100644 --- a/bcs-services/cluster-resources/pkg/action/resource/resource.go +++ b/bcs-services/cluster-resources/pkg/action/resource/resource.go @@ -227,8 +227,13 @@ func (m *ResMgr) Restart( resCsts.UpdaterAnnoKey, username, formatter.WorkloadRestartAnnotationKey, metav1.Now().Format(time.RFC3339), formatter.WorkloadRestartVersionAnnotationKey, generation) + pt := types.StrategicMergePatchType + // 自定义资源的调度(patchType diff) + if m.GroupVersion == "tkex.tencent.com/v1alpha1" { + pt = types.MergePatchType + } return resp.BuildPatchAPIResp( - ctx, m.ClusterID, m.Kind, m.GroupVersion, namespace, name, types.StrategicMergePatchType, []byte(patchByte), + ctx, m.ClusterID, m.Kind, m.GroupVersion, namespace, name, pt, []byte(patchByte), opts, ) } diff --git a/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go b/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go index c82e5b0534..ba57affd48 100644 --- a/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go +++ b/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go @@ -215,3 +215,79 @@ func validateNSParam(ctx context.Context, crdInfo map[string]interface{}, namesp } return nil } + +// GetCObjHistoryRevision 获取自定义资源 history revision +func (h *Handler) GetCObjHistoryRevision(ctx context.Context, req *clusterRes.CObjHistoryReq, + resp *clusterRes.CommonListResp) error { + + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind := crdInfo["kind"].(string) + + ret, err := cli.NewCRDCliByClusterID(ctx, req.ClusterID).HistoryRevision(ctx, kind, + req.Namespace, req.CobjName) + if err != nil { + return err + } + + resp.Data, err = pbstruct.MapSlice2ListValue(ret) + if err != nil { + return err + } + + return nil +} + +// RestartCObj 重新调度单个自定义资源 +func (h *Handler) RestartCObj(ctx context.Context, req *clusterRes.CObjRestartReq, resp *clusterRes.CommonResp) error { + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind, apiVersion := crdInfo["kind"].(string), crdInfo["apiVersion"].(string) + + currentManifest, err := respUtil.BuildRetrieveAPIRespData(ctx, respUtil.GetParams{ + ClusterID: req.ClusterID, ResKind: kind, Namespace: req.Namespace, Name: req.CobjName, + }, metav1.GetOptions{}) + if err != nil { + return err + } + revision := mapx.GetInt64(currentManifest, "manifest.metadata.generation") + // 标记 revision 用来标识应用是否在重启状态 + resp.Data, err = resAction.NewResMgr(req.ClusterID, apiVersion, kind).Restart( + ctx, req.Namespace, req.CobjName, revision+1, metav1.PatchOptions{FieldManager: "kubectl-rollout"}, + ) + return err +} + +// RolloutCObj 回滚自定义资源 +func (h *Handler) RolloutCObj(ctx context.Context, req *clusterRes.CObjRolloutReq, _ *clusterRes.CommonResp) error { + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind := crdInfo["kind"].(string) + + return cli.NewCRDCliByClusterID(ctx, req.ClusterID).RolloutRevision(ctx, req.Namespace, + req.CobjName, kind, req.Revision) +} diff --git a/bcs-services/cluster-resources/pkg/resource/client/cobj.go b/bcs-services/cluster-resources/pkg/resource/client/cobj.go index b34384cf40..8efcfe4208 100644 --- a/bcs-services/cluster-resources/pkg/resource/client/cobj.go +++ b/bcs-services/cluster-resources/pkg/resource/client/cobj.go @@ -13,16 +13,36 @@ package client import ( + "bytes" "context" + "encoding/json" + "fmt" + "strings" "sync" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" + gameAppsv1 "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/apis/tkex/v1alpha1" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned" + gameScheme "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/scheme" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/typed/tkex/v1alpha1" "golang.org/x/sync/errgroup" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/kubernetes" + "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/describe" + "k8s.io/kubectl/pkg/polymorphichelpers" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/cluster" + "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/action" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/ctxkey" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/errcode" conf "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/config" @@ -35,6 +55,11 @@ import ( "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/util/slice" ) +const ( + rollbackSuccess = "rolled back" + rollbackSkipped = "skipped rollback" +) + // CRDClient xxx type CRDClient struct { ResClient @@ -110,6 +135,109 @@ func (c *CRDClient) Get(ctx context.Context, name string, opts metav1.GetOptions return ret.UnstructuredContent(), nil } +// HistoryRevision 获取自定义资源的history revision +func (c *CRDClient) HistoryRevision(ctx context.Context, kind, namespace, name string) ([]map[string]interface{}, + error) { + // permValidate IAM 权限校验 + if err := c.permValidate(ctx, action.List, namespace); err != nil { + return nil, err + } + + // 初始化 + m := make([]map[string]interface{}, 0) + + clientSet, err := kubernetes.NewForConfig(c.conf.Rest) + if err != nil { + return m, err + } + + gameClientSet, err := versioned.NewForConfig(c.conf.Rest) + if err != nil { + return m, err + } + + // 通过Group创建HistoryViewer + historyViewer, err := CustomHistoryViewerFor( + schema.GroupKind{Group: c.res.Group, Kind: kind}, clientSet, gameClientSet) + if err != nil { + return m, err + } + + // 获取 history + s, err := historyViewer.GetHistory(namespace, name) + if err != nil { + return m, err + } + + var versions []int64 + for k := range s { + versions = append(versions, k) + } + SortInts64Desc(versions) + + for _, v := range versions { + var unstructuredObj map[string]interface{} + unstructuredObj, err = runtime.DefaultUnstructuredConverter.ToUnstructured(s[v]) + if err != nil { + blog.Errorf("convert to unstructured failed, err %s", err.Error()) + continue + } + ret := formatter.FormatWorkloadRes(unstructuredObj) + ret["revision"] = v + m = append(m, ret) + } + return m, err +} + +// RolloutRevision 自定义资源回滚history revision +func (c *CRDClient) RolloutRevision(ctx context.Context, namespace, name, kind string, revision int64) error { + // permValidate IAM 权限校验 + if err := c.permValidate(ctx, action.Update, namespace); err != nil { + return err + } + clientSet, err := kubernetes.NewForConfig(c.conf.Rest) + if err != nil { + return err + } + gameClientSet, err := versioned.NewForConfig(c.conf.Rest) + if err != nil { + return err + } + gameCli := gameClientSet.TkexV1alpha1() + // 根据kind获取对应资源客户端 + var deploy interface{} + var rollBacker polymorphichelpers.Rollbacker + switch strings.ToLower(kind) { + case "gamedeployment": + rollBacker = &GameDeploymentRollbacker{ + c: clientSet, + g: gameCli, + } + deploy, err = gameCli.GameDeployments(namespace).Get(ctx, name, metav1.GetOptions{}) + if err != nil { + return err + } + case "gamestatefulset": + rollBacker = &GameStatefulSetRollbacker{ + c: clientSet, + g: gameCli, + } + deploy, err = gameCli.GameStatefulSets(namespace).Get(ctx, name, metav1.GetOptions{}) + if err != nil { + return err + } + default: + return fmt.Errorf("%s kind doesn't exist", kind) + } + + object, ok := deploy.(runtime.Object) + if !ok { + return fmt.Errorf("%s Type assertion failed", kind) + } + _, err = rollBacker.Rollback(object, nil, revision, util.DryRunNone) + return err +} + // Watch xxx func (c *CRDClient) Watch( ctx context.Context, clusterType string, opts metav1.ListOptions, @@ -202,3 +330,243 @@ func GetCObjManifest( } return ret.UnstructuredContent(), nil } + +// GameDeploymentRollbacker gameDeployment rollback +type GameDeploymentRollbacker struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// Rollback toRevision a non-negative integer, with 0 being reserved to indicate rolling back to previous configuration +func (r *GameDeploymentRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, + dryRunStrategy util.DryRunStrategy) (string, error) { + if toRevision < 0 { + return "", fmt.Errorf("unable to find specified revision %v in history", r) + } + accessor, err := meta.Accessor(obj) + if err != nil { + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) + } + ds, history, err := gameDeploymentHistory(r.c.AppsV1(), r.g, accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err + } + if toRevision == 0 && len(history) <= 1 { + return "", fmt.Errorf("no last revision to roll back to") + } + + toHistory := findHistory(toRevision, history) + if toHistory == nil { + return "", fmt.Errorf("unable to find specified revision %v in history", r) + } + + if dryRunStrategy == util.DryRunClient { + // nolint + appliedSS, err := gDSApplyRevision(ds, toHistory) + if err != nil { + return "", err + } + return printPodTemplate(&appliedSS.Spec.Template) + } + + // Skip if the revision already matches current StatefulSet + done, err := gameDeploymentMatch(ds, toHistory) + if err != nil { + return "", err + } + if done { + return fmt.Sprintf("%s (current template already matches revision %d)", rollbackSkipped, toRevision), nil + } + + patchOptions := metav1.PatchOptions{} + if dryRunStrategy == util.DryRunServer { + patchOptions.DryRun = []string{metav1.DryRunAll} + } + // Restore revision + if _, err = r.g.GameDeployments(ds.Namespace).Patch(context.TODO(), ds.Name, types.MergePatchType, + toHistory.Data.Raw, patchOptions); err != nil { + return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) + } + + return rollbackSuccess, nil +} + +// GameStatefulSetRollbacker gameStatefulSet rollback +type GameStatefulSetRollbacker struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// Rollback toRevision a non-negative integer, with 0 being reserved to indicate rolling back to previous configuration +func (r *GameStatefulSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, + dryRunStrategy util.DryRunStrategy) (string, error) { + if toRevision < 0 { + return "", fmt.Errorf("unable to find specified revision %v in history", toRevision) + } + accessor, err := meta.Accessor(obj) + if err != nil { + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) + } + sts, history, err := gameStatefulSetHistory(r.c.AppsV1(), r.g, accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err + } + if toRevision == 0 && len(history) <= 1 { + return "", fmt.Errorf("no last revision to roll back to") + } + + toHistory := findHistory(toRevision, history) + if toHistory == nil { + return "", fmt.Errorf("unable to find specified revision %v in history", toRevision) + } + + if dryRunStrategy == util.DryRunClient { + // nolint + appliedSS, err := gSTSApplyRevision(sts, toHistory) + if err != nil { + return "", err + } + return printPodTemplate(&appliedSS.Spec.Template) + } + + // Skip if the revision already matches current StatefulSet + done, err := gameStatefulSetMatch(sts, toHistory) + if err != nil { + return "", err + } + if done { + return fmt.Sprintf("%s (current template already matches revision %d)", rollbackSkipped, toRevision), nil + } + + patchOptions := metav1.PatchOptions{} + if dryRunStrategy == util.DryRunServer { + patchOptions.DryRun = []string{metav1.DryRunAll} + } + // Restore revision + if _, err = r.g.GameStatefulSets(sts.Namespace).Patch(context.TODO(), sts.Name, types.MergePatchType, + toHistory.Data.Raw, patchOptions); err != nil { + return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) + } + + return rollbackSuccess, nil +} + +var appsCodec = gameScheme.Codecs.LegacyCodec(gameAppsv1.GroupVersion) + +// gDSApplyRevision returns a new GameDeployment constructed by restoring the state in revision to set. +// If the returned error is nil, the returned GameDeployment is valid. +func gDSApplyRevision(set *gameAppsv1.GameDeployment, revision *appsv1.ControllerRevision) (*gameAppsv1.GameDeployment, + error) { + patched, err := strategicpatch.StrategicMergePatch([]byte(runtime.EncodeOrDie(appsCodec, set)), + revision.Data.Raw, set) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameDeployment{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// gSTSApplyRevision returns a new GameStatefulSet constructed by restoring the state in revision to set. +// If the returned error is nil, the returned GameStatefulSet is valid. +func gSTSApplyRevision(set *gameAppsv1.GameStatefulSet, + revision *appsv1.ControllerRevision) (*gameAppsv1.GameStatefulSet, error) { + patched, err := strategicpatch.StrategicMergePatch([]byte(runtime.EncodeOrDie(appsCodec, set)), + revision.Data.Raw, set) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameStatefulSet{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// gameDeploymentMatch check if the given Deployment's template matches the template stored in the given history. +func gameDeploymentMatch(ss *gameAppsv1.GameDeployment, history *appsv1.ControllerRevision) (bool, error) { + patch, err := getGameDeploymentPatch(ss) + if err != nil { + return false, err + } + return bytes.Equal(patch, history.Data.Raw), nil +} + +// gameStatefulSetMatch check if the given StatefulSet's template matches the template stored in the given history. +func gameStatefulSetMatch(ss *gameAppsv1.GameStatefulSet, history *appsv1.ControllerRevision) (bool, error) { + patch, err := getGameStatefulSetPatch(ss) + if err != nil { + return false, err + } + return bytes.Equal(patch, history.Data.Raw), nil +} + +// getStatefulSetPatch returns a strategic merge patch that can be applied to restore a Deployment to a +// previous version. If the returned error is nil the patch is valid. The current state that we save is just the +// PodSpecTemplate. We can modify this later to encompass more state (or less) and remain compatible with previously +// recorded patches. +func getGameDeploymentPatch(set *gameAppsv1.GameDeployment) ([]byte, error) { + str, err := runtime.Encode(appsCodec, set) + if err != nil { + return nil, err + } + var raw map[string]interface{} + if err = json.Unmarshal(str, &raw); err != nil { + return nil, err + } + objCopy := make(map[string]interface{}) + specCopy := make(map[string]interface{}) + spec := raw["spec"].(map[string]interface{}) + template := spec["template"].(map[string]interface{}) + specCopy["template"] = template + template["$patch"] = "replace" + objCopy["spec"] = specCopy + patch, err := json.Marshal(objCopy) + return patch, err +} + +// getGameStatefulSetPatch returns a strategic merge patch that can be applied to restore a StatefulSet to a +// previous version. If the returned error is nil the patch is valid. The current state that we save is just the +// PodSpecTemplate. We can modify this later to encompass more state (or less) and remain compatible with previously +// recorded patches. +func getGameStatefulSetPatch(set *gameAppsv1.GameStatefulSet) ([]byte, error) { + str, err := runtime.Encode(appsCodec, set) + if err != nil { + return nil, err + } + var raw map[string]interface{} + if err = json.Unmarshal(str, &raw); err != nil { + return nil, err + } + objCopy := make(map[string]interface{}) + specCopy := make(map[string]interface{}) + spec := raw["spec"].(map[string]interface{}) + template := spec["template"].(map[string]interface{}) + specCopy["template"] = template + template["$patch"] = "replace" + objCopy["spec"] = specCopy + patch, err := json.Marshal(objCopy) + return patch, err +} + +// printPodTemplate converts a given pod template into a human-readable string. +func printPodTemplate(specTemplate *corev1.PodTemplateSpec) (string, error) { + podSpec, err := printTemplate(specTemplate) + if err != nil { + return "", err + } + return fmt.Sprintf("will roll back to %s", podSpec), nil +} + +// NOCC:golint/unparam(设计如此) +// nolint +func printTemplate(template *corev1.PodTemplateSpec) (string, error) { + buf := bytes.NewBuffer([]byte{}) + w := describe.NewPrefixWriter(buf) + describe.DescribePodTemplate(template, w) + return buf.String(), nil +} diff --git a/bcs-services/cluster-resources/pkg/resource/client/history.go b/bcs-services/cluster-resources/pkg/resource/client/history.go index 1cc3c7695b..0454d73588 100644 --- a/bcs-services/cluster-resources/pkg/resource/client/history.go +++ b/bcs-services/cluster-resources/pkg/resource/client/history.go @@ -17,8 +17,12 @@ import ( "context" "fmt" "io" + "sort" "text/tabwriter" + gameAppsv1 "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/apis/tkex/v1alpha1" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/typed/tkex/v1alpha1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" @@ -86,6 +90,26 @@ func (v *HistoryVisitor) VisitReplicationController(kind apps.GroupKindElement) // VisitCronJob visits a cronjob func (v *HistoryVisitor) VisitCronJob(kind apps.GroupKindElement) {} +// CustomHistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind +func CustomHistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface, g versioned.Interface) ( + HistoryViewer, error) { + elem := apps.GroupKindElement(kind) + var historyViwer HistoryViewer + switch { + case elem.GroupMatch("apiextensions.k8s.io") && elem.Kind == "GameDeployment": + historyViwer = &GameDeploymentHistoryViewer{c: c, g: g.TkexV1alpha1()} + case elem.GroupMatch("apiextensions.k8s.io") && elem.Kind == "GameStatefulSet": + historyViwer = &GameStatefulSetHistoryViewer{c: c, g: g.TkexV1alpha1()} + default: + historyViwer = nil + } + + if historyViwer == nil { + return nil, fmt.Errorf("%q is not custom resource, has no history view", kind.String()) + } + return historyViwer, nil +} + // HistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryViewer, error) { elem := apps.GroupKindElement(kind) @@ -107,6 +131,87 @@ func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryVie return visitor.result, nil } +// GameStatefulSetHistoryViewer is an implementation of HistoryViewer for GameStatefulSet +type GameStatefulSetHistoryViewer struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// ViewHistory returns a list of the revision history of a statefulset +// DOTO: this should be a describer +func (h *GameStatefulSetHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { + sts, history, err := gameStatefulSetHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return "", err + } + return printHistory(history, revision, func(history *appsv1.ControllerRevision) (*corev1.PodTemplateSpec, error) { + stsOfHistory, err := applyGameStatefulSetHistory(sts, history) + if err != nil { + return nil, err + } + return &stsOfHistory.Spec.Template, err + }) +} + +// GetHistory returns the revisions associated with a StatefulSet +func (h *GameStatefulSetHistoryViewer) GetHistory(namespace, name string) (map[int64]runtime.Object, error) { + sts, history, err := gameStatefulSetHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return nil, err + } + + result := make(map[int64]runtime.Object) + for _, h := range history { + applied, err := applyGameStatefulSetHistory(sts, h) + if err != nil { + return nil, err + } + result[h.Revision] = applied + } + + return result, nil +} + +// GameDeploymentHistoryViewer is an implementation of HistoryViewer for GameDeployment +type GameDeploymentHistoryViewer struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// ViewHistory returns a list of the revision history of a GameDeployment +func (h *GameDeploymentHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { + ds, history, err := gameDeploymentHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return "", err + } + return printHistory(history, revision, func(history *appsv1.ControllerRevision) (*corev1.PodTemplateSpec, error) { + dsOfHistory, err := applyGameDeploymentHistory(ds, history) + if err != nil { + return nil, err + } + return &dsOfHistory.Spec.Template, err + }) +} + +// GetHistory returns the revisions associated with a GameDeployment +func (h *GameDeploymentHistoryViewer) GetHistory(namespace, name string) (map[int64]runtime.Object, error) { + ds, history, err := gameDeploymentHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return nil, err + } + + result := make(map[int64]runtime.Object) + for _, h := range history { + applied, err := applyGameDeploymentHistory(ds, h) + if err != nil { + return nil, err + } + result[h.Revision] = applied + } + + return result, nil +} + // DeploymentHistoryViewer is an implementation of HistoryViewer for deployments type DeploymentHistoryViewer struct { c kubernetes.Interface @@ -444,6 +549,53 @@ func statefulSetHistory( return sts, history, nil } +// statefulSetHistory returns the StatefulSet named name in namespace and all ControllerRevisions in its history. +func gameStatefulSetHistory( + apps clientappsv1.AppsV1Interface, + gapps v1alpha1.TkexV1alpha1Interface, + namespace, name string) (*gameAppsv1.GameStatefulSet, []*appsv1.ControllerRevision, error) { + sts, err := gapps.GameStatefulSets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return nil, nil, fmt.Errorf("failed to retrieve gameStatefulSet %s: %s", name, err.Error()) + } + selector, err := metav1.LabelSelectorAsSelector(sts.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for gameStatefulSet %s: %s", name, err.Error()) + } + accessor, err := meta.Accessor(sts) + if err != nil { + return nil, nil, fmt.Errorf("failed to obtain accessor for gameStatefulSet %s: %s", name, err.Error()) + } + history, err := controlledHistoryV1(apps, namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by gameStatefulSet %s: %v", name, err) + } + return sts, history, nil +} + +func gameDeploymentHistory( + apps clientappsv1.AppsV1Interface, + gapps v1alpha1.TkexV1alpha1Interface, + namespace, name string) (*gameAppsv1.GameDeployment, []*appsv1.ControllerRevision, error) { + ds, err := gapps.GameDeployments(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return nil, nil, fmt.Errorf("failed to retrieve gameDeployment %s: %s", name, err.Error()) + } + selector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for gameDeployment %s: %s", name, err.Error()) + } + accessor, err := meta.Accessor(ds) + if err != nil { + return nil, nil, fmt.Errorf("failed to obtain accessor for gameDeployment %s: %s", name, err.Error()) + } + history, err := controlledHistoryV1(apps, namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by gameDeployment %s: %v", name, err) + } + return ds, history, nil +} + // applyDaemonSetHistory returns a specific revision of DaemonSet by applying the given history to a copy of // the given DaemonSet func applyDaemonSetHistory(ds *appsv1.DaemonSet, history *appsv1.ControllerRevision) (*appsv1.DaemonSet, error) { @@ -482,6 +634,78 @@ func applyStatefulSetHistory(sts *appsv1.StatefulSet, history *appsv1.Controller return result, nil } +// applyGameStatefulSetHistory returns a specific revision by applying the given history to a copy of the given workload +func applyGameStatefulSetHistory(sts interface{}, history *appsv1.ControllerRevision) (*gameAppsv1.GameStatefulSet, + error) { + stsBytes, err := json.Marshal(sts) + if err != nil { + return nil, err + } + patched, err := strategicpatch.StrategicMergePatch(stsBytes, history.Data.Raw, sts) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameStatefulSet{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// applyGameStatefulSetHistory returns a specific revision by applying the given history to a copy of the given workload +func applyGameDeploymentHistory(sts interface{}, history *appsv1.ControllerRevision) (*gameAppsv1.GameDeployment, + error) { + stsBytes, err := json.Marshal(sts) + if err != nil { + return nil, err + } + patched, err := strategicpatch.StrategicMergePatch(stsBytes, history.Data.Raw, sts) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameDeployment{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +type historiesByRevision []*appsv1.ControllerRevision + +func (h historiesByRevision) Len() int { return len(h) } +func (h historiesByRevision) Swap(i, j int) { h[i], h[j] = h[j], h[i] } +func (h historiesByRevision) Less(i, j int) bool { + return h[i].Revision < h[j].Revision +} + +// findHistory returns a controllerrevision of a specific revision from the given controllerrevisions. +// It returns nil if no such controllerrevision exists. +// If toRevision is 0, the last previously used history is returned. +func findHistory(toRevision int64, allHistory []*appsv1.ControllerRevision) *appsv1.ControllerRevision { + if toRevision == 0 && len(allHistory) <= 1 { + return nil + } + + // Find the history to rollback to + var toHistory *appsv1.ControllerRevision + if toRevision == 0 { + // If toRevision == 0, find the latest revision (2nd max) + sort.Sort(historiesByRevision(allHistory)) + toHistory = allHistory[len(allHistory)-2] + } else { + for _, h := range allHistory { + if h.Revision == toRevision { + // If toRevision != 0, find the history with matching revision + return h + } + } + } + + return toHistory +} + // DOTO: copied here until this becomes a describer // nolint func tabbedString(f func(io.Writer) error) (string, error) { diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go index 64ad3e59a5..6c440b8a21 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go @@ -12,21 +12,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.20.3 +// protoc-gen-go v1.31.0 +// protoc v4.22.0 // source: cluster-resources.proto package clusterresources import ( - context "context" _ "github.com/envoyproxy/protoc-gen-validate/validate" _struct "github.com/golang/protobuf/ptypes/struct" _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -1815,6 +1811,251 @@ func (x *CObjGetReq) GetFormat() string { return "" } +type CObjHistoryReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (x *CObjHistoryReq) Reset() { + *x = CObjHistoryReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjHistoryReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjHistoryReq) ProtoMessage() {} + +func (x *CObjHistoryReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CObjHistoryReq.ProtoReflect.Descriptor instead. +func (*CObjHistoryReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{25} +} + +func (x *CObjHistoryReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjHistoryReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjHistoryReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjHistoryReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjHistoryReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +type CObjRestartReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (x *CObjRestartReq) Reset() { + *x = CObjRestartReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjRestartReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjRestartReq) ProtoMessage() {} + +func (x *CObjRestartReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[26] + 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 CObjRestartReq.ProtoReflect.Descriptor instead. +func (*CObjRestartReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{26} +} + +func (x *CObjRestartReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjRestartReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjRestartReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjRestartReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjRestartReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +type CObjRolloutReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Revision int64 `protobuf:"varint,6,opt,name=revision,proto3" json:"revision,omitempty"` +} + +func (x *CObjRolloutReq) Reset() { + *x = CObjRolloutReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjRolloutReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjRolloutReq) ProtoMessage() {} + +func (x *CObjRolloutReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[27] + 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 CObjRolloutReq.ProtoReflect.Descriptor instead. +func (*CObjRolloutReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{27} +} + +func (x *CObjRolloutReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjRolloutReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjRolloutReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjRolloutReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjRolloutReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *CObjRolloutReq) GetRevision() int64 { + if x != nil { + return x.Revision + } + return 0 +} + type CObjCreateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1830,7 +2071,7 @@ type CObjCreateReq struct { func (x *CObjCreateReq) Reset() { *x = CObjCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[25] + mi := &file_cluster_resources_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1843,7 +2084,7 @@ func (x *CObjCreateReq) String() string { func (*CObjCreateReq) ProtoMessage() {} func (x *CObjCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[25] + mi := &file_cluster_resources_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1856,7 +2097,7 @@ func (x *CObjCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjCreateReq.ProtoReflect.Descriptor instead. func (*CObjCreateReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{25} + return file_cluster_resources_proto_rawDescGZIP(), []int{28} } func (x *CObjCreateReq) GetProjectID() string { @@ -1911,7 +2152,7 @@ type CObjUpdateReq struct { func (x *CObjUpdateReq) Reset() { *x = CObjUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[26] + mi := &file_cluster_resources_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1924,7 +2165,7 @@ func (x *CObjUpdateReq) String() string { func (*CObjUpdateReq) ProtoMessage() {} func (x *CObjUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[26] + mi := &file_cluster_resources_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1937,7 +2178,7 @@ func (x *CObjUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjUpdateReq.ProtoReflect.Descriptor instead. func (*CObjUpdateReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{26} + return file_cluster_resources_proto_rawDescGZIP(), []int{29} } func (x *CObjUpdateReq) GetProjectID() string { @@ -2005,7 +2246,7 @@ type CObjScaleReq struct { func (x *CObjScaleReq) Reset() { *x = CObjScaleReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[27] + mi := &file_cluster_resources_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2018,7 +2259,7 @@ func (x *CObjScaleReq) String() string { func (*CObjScaleReq) ProtoMessage() {} func (x *CObjScaleReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[27] + mi := &file_cluster_resources_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2031,7 +2272,7 @@ func (x *CObjScaleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjScaleReq.ProtoReflect.Descriptor instead. func (*CObjScaleReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{27} + return file_cluster_resources_proto_rawDescGZIP(), []int{30} } func (x *CObjScaleReq) GetProjectID() string { @@ -2091,7 +2332,7 @@ type CObjDeleteReq struct { func (x *CObjDeleteReq) Reset() { *x = CObjDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[28] + mi := &file_cluster_resources_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2104,7 +2345,7 @@ func (x *CObjDeleteReq) String() string { func (*CObjDeleteReq) ProtoMessage() {} func (x *CObjDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[28] + mi := &file_cluster_resources_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2117,7 +2358,7 @@ func (x *CObjDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjDeleteReq.ProtoReflect.Descriptor instead. func (*CObjDeleteReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{28} + return file_cluster_resources_proto_rawDescGZIP(), []int{31} } func (x *CObjDeleteReq) GetProjectID() string { @@ -2172,7 +2413,7 @@ type CObjBatchRescheduleReq struct { func (x *CObjBatchRescheduleReq) Reset() { *x = CObjBatchRescheduleReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[29] + mi := &file_cluster_resources_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2185,7 +2426,7 @@ func (x *CObjBatchRescheduleReq) String() string { func (*CObjBatchRescheduleReq) ProtoMessage() {} func (x *CObjBatchRescheduleReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[29] + mi := &file_cluster_resources_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2198,7 +2439,7 @@ func (x *CObjBatchRescheduleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjBatchRescheduleReq.ProtoReflect.Descriptor instead. func (*CObjBatchRescheduleReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{29} + return file_cluster_resources_proto_rawDescGZIP(), []int{32} } func (x *CObjBatchRescheduleReq) GetProjectID() string { @@ -2265,7 +2506,7 @@ type CommonResp struct { func (x *CommonResp) Reset() { *x = CommonResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[30] + mi := &file_cluster_resources_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2278,7 +2519,7 @@ func (x *CommonResp) String() string { func (*CommonResp) ProtoMessage() {} func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[30] + mi := &file_cluster_resources_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2291,7 +2532,7 @@ func (x *CommonResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. func (*CommonResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{30} + return file_cluster_resources_proto_rawDescGZIP(), []int{33} } func (x *CommonResp) GetCode() int32 { @@ -2344,7 +2585,7 @@ type CommonListResp struct { func (x *CommonListResp) Reset() { *x = CommonListResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[31] + mi := &file_cluster_resources_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2598,7 @@ func (x *CommonListResp) String() string { func (*CommonListResp) ProtoMessage() {} func (x *CommonListResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[31] + mi := &file_cluster_resources_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,7 +2611,7 @@ func (x *CommonListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonListResp.ProtoReflect.Descriptor instead. func (*CommonListResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{31} + return file_cluster_resources_proto_rawDescGZIP(), []int{34} } func (x *CommonListResp) GetCode() int32 { @@ -2425,7 +2666,7 @@ type SubscribeReq struct { func (x *SubscribeReq) Reset() { *x = SubscribeReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[32] + mi := &file_cluster_resources_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +2679,7 @@ func (x *SubscribeReq) String() string { func (*SubscribeReq) ProtoMessage() {} func (x *SubscribeReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[32] + mi := &file_cluster_resources_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +2692,7 @@ func (x *SubscribeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeReq.ProtoReflect.Descriptor instead. func (*SubscribeReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{32} + return file_cluster_resources_proto_rawDescGZIP(), []int{35} } func (x *SubscribeReq) GetProjectID() string { @@ -2520,7 +2761,7 @@ type SubscribeResp struct { func (x *SubscribeResp) Reset() { *x = SubscribeResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[33] + mi := &file_cluster_resources_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2533,7 +2774,7 @@ func (x *SubscribeResp) String() string { func (*SubscribeResp) ProtoMessage() {} func (x *SubscribeResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[33] + mi := &file_cluster_resources_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2546,7 +2787,7 @@ func (x *SubscribeResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeResp.ProtoReflect.Descriptor instead. func (*SubscribeResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{33} + return file_cluster_resources_proto_rawDescGZIP(), []int{36} } func (x *SubscribeResp) GetCode() int32 { @@ -2611,7 +2852,7 @@ type InvalidateDiscoveryCacheReq struct { func (x *InvalidateDiscoveryCacheReq) Reset() { *x = InvalidateDiscoveryCacheReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[34] + mi := &file_cluster_resources_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2624,7 +2865,7 @@ func (x *InvalidateDiscoveryCacheReq) String() string { func (*InvalidateDiscoveryCacheReq) ProtoMessage() {} func (x *InvalidateDiscoveryCacheReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[34] + mi := &file_cluster_resources_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2637,7 +2878,7 @@ func (x *InvalidateDiscoveryCacheReq) ProtoReflect() protoreflect.Message { // Deprecated: Use InvalidateDiscoveryCacheReq.ProtoReflect.Descriptor instead. func (*InvalidateDiscoveryCacheReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{34} + return file_cluster_resources_proto_rawDescGZIP(), []int{37} } func (x *InvalidateDiscoveryCacheReq) GetProjectID() string { @@ -2675,7 +2916,7 @@ type FormRenderPreviewReq struct { func (x *FormRenderPreviewReq) Reset() { *x = FormRenderPreviewReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[35] + mi := &file_cluster_resources_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2688,7 +2929,7 @@ func (x *FormRenderPreviewReq) String() string { func (*FormRenderPreviewReq) ProtoMessage() {} func (x *FormRenderPreviewReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[35] + mi := &file_cluster_resources_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2701,7 +2942,7 @@ func (x *FormRenderPreviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FormRenderPreviewReq.ProtoReflect.Descriptor instead. func (*FormRenderPreviewReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{35} + return file_cluster_resources_proto_rawDescGZIP(), []int{38} } func (x *FormRenderPreviewReq) GetProjectID() string { @@ -2747,7 +2988,7 @@ type GetResFormSchemaReq struct { func (x *GetResFormSchemaReq) Reset() { *x = GetResFormSchemaReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[36] + mi := &file_cluster_resources_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2760,7 +3001,7 @@ func (x *GetResFormSchemaReq) String() string { func (*GetResFormSchemaReq) ProtoMessage() {} func (x *GetResFormSchemaReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[36] + mi := &file_cluster_resources_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2773,7 +3014,7 @@ func (x *GetResFormSchemaReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResFormSchemaReq.ProtoReflect.Descriptor instead. func (*GetResFormSchemaReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{36} + return file_cluster_resources_proto_rawDescGZIP(), []int{39} } func (x *GetResFormSchemaReq) GetProjectID() string { @@ -2824,7 +3065,7 @@ type GetFormSupportedApiVersionsReq struct { func (x *GetFormSupportedApiVersionsReq) Reset() { *x = GetFormSupportedApiVersionsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[37] + mi := &file_cluster_resources_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2837,7 +3078,7 @@ func (x *GetFormSupportedApiVersionsReq) String() string { func (*GetFormSupportedApiVersionsReq) ProtoMessage() {} func (x *GetFormSupportedApiVersionsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[37] + mi := &file_cluster_resources_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2850,7 +3091,7 @@ func (x *GetFormSupportedApiVersionsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFormSupportedApiVersionsReq.ProtoReflect.Descriptor instead. func (*GetFormSupportedApiVersionsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{37} + return file_cluster_resources_proto_rawDescGZIP(), []int{40} } func (x *GetFormSupportedApiVersionsReq) GetProjectID() string { @@ -2890,7 +3131,7 @@ type GetResSelectItemsReq struct { func (x *GetResSelectItemsReq) Reset() { *x = GetResSelectItemsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[38] + mi := &file_cluster_resources_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2903,7 +3144,7 @@ func (x *GetResSelectItemsReq) String() string { func (*GetResSelectItemsReq) ProtoMessage() {} func (x *GetResSelectItemsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[38] + mi := &file_cluster_resources_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2916,7 +3157,7 @@ func (x *GetResSelectItemsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResSelectItemsReq.ProtoReflect.Descriptor instead. func (*GetResSelectItemsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{38} + return file_cluster_resources_proto_rawDescGZIP(), []int{41} } func (x *GetResSelectItemsReq) GetProjectID() string { @@ -2965,7 +3206,7 @@ type ListViewConfigsReq struct { func (x *ListViewConfigsReq) Reset() { *x = ListViewConfigsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[39] + mi := &file_cluster_resources_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2978,7 +3219,7 @@ func (x *ListViewConfigsReq) String() string { func (*ListViewConfigsReq) ProtoMessage() {} func (x *ListViewConfigsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[39] + mi := &file_cluster_resources_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2991,7 +3232,7 @@ func (x *ListViewConfigsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListViewConfigsReq.ProtoReflect.Descriptor instead. func (*ListViewConfigsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{39} + return file_cluster_resources_proto_rawDescGZIP(), []int{42} } func (x *ListViewConfigsReq) GetProjectCode() string { @@ -3013,7 +3254,7 @@ type GetViewConfigReq struct { func (x *GetViewConfigReq) Reset() { *x = GetViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[40] + mi := &file_cluster_resources_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3026,7 +3267,7 @@ func (x *GetViewConfigReq) String() string { func (*GetViewConfigReq) ProtoMessage() {} func (x *GetViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[40] + mi := &file_cluster_resources_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3039,7 +3280,7 @@ func (x *GetViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetViewConfigReq.ProtoReflect.Descriptor instead. func (*GetViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{40} + return file_cluster_resources_proto_rawDescGZIP(), []int{43} } func (x *GetViewConfigReq) GetId() string { @@ -3069,7 +3310,7 @@ type ViewFilter struct { func (x *ViewFilter) Reset() { *x = ViewFilter{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[41] + mi := &file_cluster_resources_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3082,7 +3323,7 @@ func (x *ViewFilter) String() string { func (*ViewFilter) ProtoMessage() {} func (x *ViewFilter) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[41] + mi := &file_cluster_resources_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3095,7 +3336,7 @@ func (x *ViewFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ViewFilter.ProtoReflect.Descriptor instead. func (*ViewFilter) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{41} + return file_cluster_resources_proto_rawDescGZIP(), []int{44} } func (x *ViewFilter) GetName() string { @@ -3135,7 +3376,7 @@ type CreateViewConfigReq struct { func (x *CreateViewConfigReq) Reset() { *x = CreateViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[42] + mi := &file_cluster_resources_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3148,7 +3389,7 @@ func (x *CreateViewConfigReq) String() string { func (*CreateViewConfigReq) ProtoMessage() {} func (x *CreateViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[42] + mi := &file_cluster_resources_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3161,7 +3402,7 @@ func (x *CreateViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateViewConfigReq.ProtoReflect.Descriptor instead. func (*CreateViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{42} + return file_cluster_resources_proto_rawDescGZIP(), []int{45} } func (x *CreateViewConfigReq) GetProjectCode() string { @@ -3222,7 +3463,7 @@ type UpdateViewConfigReq struct { func (x *UpdateViewConfigReq) Reset() { *x = UpdateViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[43] + mi := &file_cluster_resources_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3235,7 +3476,7 @@ func (x *UpdateViewConfigReq) String() string { func (*UpdateViewConfigReq) ProtoMessage() {} func (x *UpdateViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[43] + mi := &file_cluster_resources_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3248,7 +3489,7 @@ func (x *UpdateViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateViewConfigReq.ProtoReflect.Descriptor instead. func (*UpdateViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{43} + return file_cluster_resources_proto_rawDescGZIP(), []int{46} } func (x *UpdateViewConfigReq) GetId() string { @@ -3306,7 +3547,7 @@ type RenameViewConfigReq struct { func (x *RenameViewConfigReq) Reset() { *x = RenameViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[44] + mi := &file_cluster_resources_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3319,7 +3560,7 @@ func (x *RenameViewConfigReq) String() string { func (*RenameViewConfigReq) ProtoMessage() {} func (x *RenameViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[44] + mi := &file_cluster_resources_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3332,7 +3573,7 @@ func (x *RenameViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RenameViewConfigReq.ProtoReflect.Descriptor instead. func (*RenameViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{44} + return file_cluster_resources_proto_rawDescGZIP(), []int{47} } func (x *RenameViewConfigReq) GetId() string { @@ -3368,7 +3609,7 @@ type DeleteViewConfigReq struct { func (x *DeleteViewConfigReq) Reset() { *x = DeleteViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[45] + mi := &file_cluster_resources_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3381,7 +3622,7 @@ func (x *DeleteViewConfigReq) String() string { func (*DeleteViewConfigReq) ProtoMessage() {} func (x *DeleteViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[45] + mi := &file_cluster_resources_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3394,7 +3635,7 @@ func (x *DeleteViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteViewConfigReq.ProtoReflect.Descriptor instead. func (*DeleteViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{45} + return file_cluster_resources_proto_rawDescGZIP(), []int{48} } func (x *DeleteViewConfigReq) GetId() string { @@ -3423,7 +3664,7 @@ type ClusterNamespaces struct { func (x *ClusterNamespaces) Reset() { *x = ClusterNamespaces{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[46] + mi := &file_cluster_resources_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3436,7 +3677,7 @@ func (x *ClusterNamespaces) String() string { func (*ClusterNamespaces) ProtoMessage() {} func (x *ClusterNamespaces) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[46] + mi := &file_cluster_resources_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3449,7 +3690,7 @@ func (x *ClusterNamespaces) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterNamespaces.ProtoReflect.Descriptor instead. func (*ClusterNamespaces) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{46} + return file_cluster_resources_proto_rawDescGZIP(), []int{49} } func (x *ClusterNamespaces) GetClusterID() string { @@ -3479,7 +3720,7 @@ type LabelSelector struct { func (x *LabelSelector) Reset() { *x = LabelSelector{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[47] + mi := &file_cluster_resources_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3492,7 +3733,7 @@ func (x *LabelSelector) String() string { func (*LabelSelector) ProtoMessage() {} func (x *LabelSelector) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[47] + mi := &file_cluster_resources_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +3746,7 @@ func (x *LabelSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelSelector.ProtoReflect.Descriptor instead. func (*LabelSelector) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{47} + return file_cluster_resources_proto_rawDescGZIP(), []int{50} } func (x *LabelSelector) GetKey() string { @@ -3547,7 +3788,7 @@ type FetchMultiClusterResourceReq struct { func (x *FetchMultiClusterResourceReq) Reset() { *x = FetchMultiClusterResourceReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[48] + mi := &file_cluster_resources_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3560,7 +3801,7 @@ func (x *FetchMultiClusterResourceReq) String() string { func (*FetchMultiClusterResourceReq) ProtoMessage() {} func (x *FetchMultiClusterResourceReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[48] + mi := &file_cluster_resources_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3573,7 +3814,7 @@ func (x *FetchMultiClusterResourceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchMultiClusterResourceReq.ProtoReflect.Descriptor instead. func (*FetchMultiClusterResourceReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{48} + return file_cluster_resources_proto_rawDescGZIP(), []int{51} } func (x *FetchMultiClusterResourceReq) GetProjectCode() string { @@ -3650,7 +3891,7 @@ type FetchMultiClusterCustomResourceReq struct { func (x *FetchMultiClusterCustomResourceReq) Reset() { *x = FetchMultiClusterCustomResourceReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[49] + mi := &file_cluster_resources_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3663,7 +3904,7 @@ func (x *FetchMultiClusterCustomResourceReq) String() string { func (*FetchMultiClusterCustomResourceReq) ProtoMessage() {} func (x *FetchMultiClusterCustomResourceReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[49] + mi := &file_cluster_resources_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3676,7 +3917,7 @@ func (x *FetchMultiClusterCustomResourceReq) ProtoReflect() protoreflect.Message // Deprecated: Use FetchMultiClusterCustomResourceReq.ProtoReflect.Descriptor instead. func (*FetchMultiClusterCustomResourceReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{49} + return file_cluster_resources_proto_rawDescGZIP(), []int{52} } func (x *FetchMultiClusterCustomResourceReq) GetProjectCode() string { @@ -3750,7 +3991,7 @@ type MultiClusterResourceCountReq struct { func (x *MultiClusterResourceCountReq) Reset() { *x = MultiClusterResourceCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[50] + mi := &file_cluster_resources_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3763,7 +4004,7 @@ func (x *MultiClusterResourceCountReq) String() string { func (*MultiClusterResourceCountReq) ProtoMessage() {} func (x *MultiClusterResourceCountReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[50] + mi := &file_cluster_resources_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3776,7 +4017,7 @@ func (x *MultiClusterResourceCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MultiClusterResourceCountReq.ProtoReflect.Descriptor instead. func (*MultiClusterResourceCountReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{50} + return file_cluster_resources_proto_rawDescGZIP(), []int{53} } func (x *MultiClusterResourceCountReq) GetProjectCode() string { @@ -4395,98 +4636,111 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x34, 0x0a, 0x32, 0x2a, 0x0a, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe6, 0x9f, 0xa5, 0xe8, 0xaf, 0xa2, 0xe8, 0xaf, 0xb7, 0xe6, - 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa7, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, - 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, - 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, - 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, - 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x17, - 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, - 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, - 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0xef, 0xbc, 0x89, - 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, - 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, - 0xb0, 0x04, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, - 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, - 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, - 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, - 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, - 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, - 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, - 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, - 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, - 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, - 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, - 0xbd, 0x93, 0x22, 0xcb, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, - 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, - 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, - 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0x89, 0x03, 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, + 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, + 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, + 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, + 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, + 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, + 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, + 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x41, + 0x92, 0x41, 0x3e, 0x0a, 0x3c, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x32, 0x2a, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe5, 0x8e, 0x86, 0xe5, + 0x8f, 0xb2, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, + 0x93, 0x22, 0x89, 0x03, 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, + 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, + 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, + 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, + 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x41, 0x92, 0x41, 0x3e, 0x0a, + 0x3c, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x32, 0x2a, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe9, 0x83, 0xa8, 0xe7, 0xbd, 0xb2, 0xe5, + 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xb6, 0x03, + 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, + 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, + 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, + 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, + 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, - 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, - 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, - 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, - 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, - 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x27, 0x92, 0x41, 0x1a, - 0x2a, 0x18, 0xe5, 0x89, 0xaf, 0xe6, 0x9c, 0xac, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xef, 0xbc, - 0x88, 0x30, 0x2d, 0x38, 0x31, 0x39, 0x32, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x07, 0x22, 0x05, 0x18, - 0x80, 0x40, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x3a, 0x40, - 0x92, 0x41, 0x3d, 0x0a, 0x3b, 0x2a, 0x0b, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x32, 0x2c, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0x20, 0x6b, 0x38, 0x73, 0x20, 0xe8, - 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, - 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, - 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x1b, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xfa, 0x42, + 0x04, 0x22, 0x02, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3a, + 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x32, 0x1e, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, + 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa7, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, + 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, + 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, + 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, + 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, + 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0xef, 0xbc, + 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, 0x4f, 0x62, + 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, + 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, + 0x22, 0xb0, 0x04, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, @@ -4506,746 +4760,762 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, - 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, - 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, - 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xfc, 0x04, 0x0a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, - 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, - 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, - 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, - 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, - 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, - 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, - 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, - 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, - 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, - 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, - 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0x92, 0x41, - 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, - 0x99, 0xa8, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x10, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x08, 0x70, 0x6f, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x76, 0x92, 0x41, - 0x22, 0x2a, 0x20, 0xe5, 0xbe, 0x85, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, - 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe5, 0x88, 0x97, - 0xe8, 0xa1, 0xa8, 0xfa, 0x42, 0x4e, 0x92, 0x01, 0x4b, 0x08, 0x01, 0x18, 0x01, 0x22, 0x45, 0x72, - 0x43, 0x18, 0xfd, 0x01, 0x32, 0x3e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, + 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, + 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, + 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe6, + 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, + 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, + 0xe4, 0xbd, 0x93, 0x22, 0xcb, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, + 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, + 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, + 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, + 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, + 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, + 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, + 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x27, 0x92, 0x41, + 0x1a, 0x2a, 0x18, 0xe5, 0x89, 0xaf, 0xe6, 0x9c, 0xac, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xef, + 0xbc, 0x88, 0x30, 0x2d, 0x38, 0x31, 0x39, 0x32, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x07, 0x22, 0x05, + 0x18, 0x80, 0x40, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x3a, + 0x40, 0x92, 0x41, 0x3d, 0x0a, 0x3b, 0x2a, 0x0b, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x32, 0x2c, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0x20, 0x6b, 0x38, 0x73, 0x20, + 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, + 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, + 0x93, 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, + 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, + 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, + 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, + 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, + 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, + 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, + 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, + 0x2a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, + 0x24, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, + 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, + 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xfc, 0x04, 0x0a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, + 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, + 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, + 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, + 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, + 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, + 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0x92, + 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, + 0xe5, 0x99, 0xa8, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x10, 0x52, 0x0d, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x08, 0x70, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x76, 0x92, + 0x41, 0x22, 0x2a, 0x20, 0xe5, 0xbe, 0x85, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, + 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe5, 0x88, + 0x97, 0xe8, 0xa1, 0xa8, 0xfa, 0x42, 0x4e, 0x92, 0x01, 0x4b, 0x08, 0x01, 0x18, 0x01, 0x22, 0x45, + 0x72, 0x43, 0x18, 0xfd, 0x01, 0x32, 0x3e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, + 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, + 0x39, 0x5d, 0x29, 0x3f, 0x28, 0x2e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, - 0x5d, 0x29, 0x3f, 0x28, 0x2e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, - 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, - 0x29, 0x3f, 0x29, 0x2a, 0x52, 0x08, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x3a, 0x53, - 0x92, 0x41, 0x50, 0x0a, 0x4e, 0x2a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x32, 0x34, 0xe9, - 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x6b, 0x38, 0x73, 0x20, - 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, - 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, - 0xe4, 0xbd, 0x93, 0x22, 0xe2, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, - 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, - 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, - 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, - 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, - 0xba, 0x90, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, - 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, - 0x1f, 0x92, 0x41, 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, - 0x52, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x3a, 0x85, 0x01, 0x92, 0x41, 0x81, 0x01, 0x0a, 0x7f, 0x2a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, 0x8d, - 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, 0xa8, 0xe4, - 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, 0x49, 0x20, - 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, 0x8c, 0xe5, - 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, 0xe7, 0xbb, - 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, 0x9e, 0x84, - 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, 0xa5, 0xe5, - 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xee, 0x03, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, - 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, - 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, - 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, - 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, - 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x44, 0x12, 0x47, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x17, 0x92, 0x41, 0x14, - 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xbf, - 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, 0x0a, 0x0e, 0x77, 0x65, - 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x1f, 0x92, 0x41, 0x1c, - 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, 0x52, 0x0e, 0x77, 0x65, - 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x8a, 0x01, 0x92, - 0x41, 0x86, 0x01, 0x0a, 0x83, 0x01, 0x2a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, + 0x5d, 0x29, 0x3f, 0x29, 0x2a, 0x52, 0x08, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x3a, + 0x53, 0x92, 0x41, 0x50, 0x0a, 0x4e, 0x2a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x32, 0x34, + 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x6b, 0x38, 0x73, + 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, + 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xe2, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, + 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, + 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x60, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x42, 0x1f, 0x92, 0x41, 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, + 0xa3, 0x52, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3a, 0x85, 0x01, 0x92, 0x41, 0x81, 0x01, 0x0a, 0x7f, 0x2a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, 0x49, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, 0x8c, 0xe5, 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, 0xe7, 0xbb, 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, 0x9e, 0x84, 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, 0xa5, - 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, - 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, - 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, - 0xe5, 0x8f, 0xb7, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, - 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, - 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x01, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, - 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x41, 0x50, 0x49, 0x20, 0xe7, 0x89, 0x88, 0xe6, - 0x9c, 0xac, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, - 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x2a, - 0x92, 0x41, 0x27, 0x0a, 0x25, 0x2a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x32, 0x15, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xbb, 0x03, 0x0a, 0x0d, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, + 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xee, 0x03, 0x0a, 0x0e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x32, 0x0c, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x13, 0x2a, 0x03, 0x75, 0x69, 0x64, 0x32, 0x0c, 0xe5, 0x94, - 0xaf, 0xe4, 0xb8, 0x80, 0xe6, 0xa0, 0x87, 0xe8, 0xaf, 0x86, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x56, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x21, 0x92, 0x41, 0x1e, 0x2a, - 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x08, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x24, 0x92, 0x41, 0x21, 0x2a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, - 0x89, 0xa9, 0xe5, 0xb1, 0x95, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x0b, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x1b, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, - 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x3a, 0x4a, 0x92, 0x41, 0x47, 0x0a, 0x45, 0x2a, 0x1b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x52, 0x65, 0x71, 0x32, 0x26, 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x20, - 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x22, 0xce, 0x02, 0x0a, - 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, - 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, - 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x49, - 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, - 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0x52, - 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, - 0x2a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x32, 0x25, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x95, - 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe4, 0xb8, 0xba, 0x20, 0x4d, 0x61, - 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x20, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x22, 0xa9, 0x03, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, - 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, - 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x36, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x55, 0x92, 0x41, 0x3b, 0x2a, 0x39, 0xe6, 0xa8, 0xa1, - 0xe6, 0x9d, 0xbf, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, 0xef, - 0xbc, 0x88, 0xe5, 0xa6, 0x82, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0xef, 0xbc, 0x8c, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0xe7, 0xad, 0x89, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x14, 0x72, 0x12, 0x52, 0x00, 0x52, 0x06, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, 0x2a, 0x13, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, - 0x71, 0x32, 0x26, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, - 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, - 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa5, 0x02, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, - 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, - 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, - 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, - 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, - 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x3a, 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, - 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, - 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, - 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, - 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, - 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, - 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, - 0x18, 0x80, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, - 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x3a, 0x5a, - 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, - 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, - 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, - 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, - 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, - 0x33, 0x92, 0x41, 0x30, 0x0a, 0x2e, 0x2a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, - 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, - 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, - 0x31, 0x92, 0x41, 0x2e, 0x0a, 0x2c, 0x2a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, - 0x83, 0x85, 0x22, 0xd3, 0x01, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x55, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 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, 0xbf, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, - 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, - 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, + 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, + 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x44, 0x12, 0x47, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x17, 0x92, 0x41, + 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, + 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, 0x0a, 0x0e, 0x77, + 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x1f, 0x92, 0x41, + 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, 0x52, 0x0e, 0x77, + 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x8a, 0x01, + 0x92, 0x41, 0x86, 0x01, 0x0a, 0x83, 0x01, 0x2a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, + 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, + 0x49, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, + 0x8c, 0xe5, 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, + 0xe7, 0xbb, 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, + 0x9e, 0x84, 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, + 0xa5, 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, + 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, - 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, - 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, - 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, - 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, - 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, - 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, - 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe5, 0x8f, 0xa6, 0xe5, 0xad, 0x98, 0xe4, - 0xb8, 0xba, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x3a, 0x2e, 0x92, 0x41, 0x2b, 0x0a, - 0x29, 0x2a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, - 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, - 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, - 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, - 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, - 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, - 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, - 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x2e, 0x92, 0x41, - 0x2b, 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xdb, 0x01, 0x0a, - 0x13, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, - 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, - 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x2e, 0x92, 0x41, 0x2b, 0x0a, - 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xb2, 0x01, 0x0a, 0x13, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, 0x2a, - 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, - 0xe4, 0xb8, 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, - 0x6a, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, - 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x0d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0x92, 0x41, 0x05, 0x2a, - 0x03, 0x6b, 0x65, 0x79, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x40, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, - 0x92, 0x41, 0x04, 0x2a, 0x02, 0x6f, 0x70, 0xfa, 0x42, 0x26, 0x72, 0x24, 0x52, 0x01, 0x3d, 0x52, - 0x02, 0x49, 0x6e, 0x52, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x06, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x73, 0x52, 0x0c, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x52, 0x02, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0x2a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x1c, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, - 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, - 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, - 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, 0x2a, - 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, 0x92, - 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x43, 0x92, 0x41, 0x40, 0x0a, 0x3e, - 0x2a, 0x1c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, 0x1e, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, - 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xcc, - 0x04, 0x0a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, - 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, - 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, - 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, - 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x63, 0x72, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0x92, 0x41, 0x05, 0x2a, 0x03, 0x63, 0x72, - 0x64, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x63, 0x72, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, - 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, - 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, 0x2a, - 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, 0x92, - 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x52, 0x92, 0x41, 0x4f, 0x0a, 0x4d, - 0x2a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x32, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, - 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xc2, 0x03, - 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3c, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, - 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, - 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, - 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, - 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, - 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x49, 0x92, 0x41, 0x46, 0x0a, 0x44, 0x2a, 0x1c, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, - 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, - 0xbd, 0x93, 0x32, 0x9a, 0x05, 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x92, 0x01, 0x0a, - 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x63, 0x68, 0x6f, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x2c, 0x12, 0x08, 0x45, 0x63, 0x68, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x20, 0x45, 0x63, 0x68, 0x6f, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, - 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe5, 0xbc, 0x80, 0xe5, 0x8f, 0x91, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, - 0x95, 0x12, 0x9b, 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x69, 0x6e, 0x67, 0x92, 0x41, 0x38, 0x12, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, + 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0x89, 0x88, 0xe6, 0x9c, + 0xac, 0xe5, 0x8f, 0xb7, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, + 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x43, + 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, + 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x41, 0x50, 0x49, 0x20, 0xe7, 0x89, 0x88, + 0xe6, 0x9c, 0xac, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, + 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, + 0x2a, 0x92, 0x41, 0x27, 0x0a, 0x25, 0x2a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x65, 0x71, 0x32, 0x15, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xbb, 0x03, 0x0a, 0x0d, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, + 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, + 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, + 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, + 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x32, 0x0c, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x13, 0x2a, 0x03, 0x75, 0x69, 0x64, 0x32, 0x0c, 0xe5, + 0x94, 0xaf, 0xe4, 0xb8, 0x80, 0xe6, 0xa0, 0x87, 0xe8, 0xaf, 0x86, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x56, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x21, 0x92, 0x41, 0x1e, + 0x2a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x08, + 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, + 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x24, 0x92, 0x41, 0x21, 0x2a, 0x0b, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe6, 0x89, 0xa9, 0xe5, 0xb1, 0x95, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x0b, 0x6d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x1b, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, + 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, + 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x3a, 0x4a, 0x92, 0x41, 0x47, 0x0a, 0x45, 0x2a, 0x1b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x52, 0x65, 0x71, 0x32, 0x26, 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x20, 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x22, 0xce, 0x02, + 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x49, 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, + 0x0f, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, + 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, + 0x3d, 0x2a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x32, 0x25, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, + 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe4, 0xb8, 0xba, 0x20, 0x4d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x20, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x22, 0xa9, + 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, + 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x55, 0x92, 0x41, 0x3b, 0x2a, 0x39, 0xe6, 0xa8, + 0xa1, 0xe6, 0x9d, 0xbf, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, + 0xef, 0xbc, 0x88, 0xe5, 0xa6, 0x82, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0xef, 0xbc, 0x8c, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, + 0xb0, 0xe7, 0xad, 0x89, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x14, 0x72, 0x12, 0x52, 0x00, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, 0x2a, 0x13, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x65, 0x71, 0x32, 0x26, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa5, 0x02, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, + 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, + 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x3a, 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, + 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, + 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, + 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, + 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0x18, 0x80, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x2e, 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, + 0xaf, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x3a, + 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, + 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, + 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, + 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x3a, 0x33, 0x92, 0x41, 0x30, 0x0a, 0x2e, 0x2a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, + 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x3a, 0x31, 0x92, 0x41, 0x2e, 0x0a, 0x2c, 0x2a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, + 0xe6, 0x83, 0x85, 0x22, 0xd3, 0x01, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x55, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 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, 0xbf, 0x03, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, + 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, + 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, + 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, + 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, + 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, + 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, + 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, + 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, + 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, + 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe5, 0x8f, 0xa6, 0xe5, 0xad, 0x98, + 0xe4, 0xb8, 0xba, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x3a, 0x2e, 0x92, 0x41, 0x2b, + 0x0a, 0x29, 0x2a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xbf, 0x03, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, + 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, + 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, + 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, + 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, + 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, + 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x2e, 0x92, + 0x41, 0x2b, 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, + 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xdb, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, + 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, + 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x2e, 0x92, 0x41, 0x2b, + 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xb2, 0x01, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, + 0x2a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, + 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, + 0x22, 0x6a, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, + 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, + 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, + 0x0d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0x92, 0x41, 0x05, + 0x2a, 0x03, 0x6b, 0x65, 0x79, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0x92, 0x41, 0x04, 0x2a, 0x02, 0x6f, 0x70, 0xfa, 0x42, 0x26, 0x72, 0x24, 0x52, 0x01, 0x3d, + 0x52, 0x02, 0x49, 0x6e, 0x52, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x06, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x52, 0x0c, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0x2a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x1c, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, + 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x26, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, + 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, + 0x92, 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, + 0x28, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x43, 0x92, 0x41, 0x40, 0x0a, + 0x3e, 0x2a, 0x1c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, + 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, + 0xcc, 0x04, 0x0a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, + 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, + 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, + 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x63, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0x92, 0x41, 0x05, 0x2a, 0x03, 0x63, + 0x72, 0x64, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x63, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, + 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, + 0x92, 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, + 0x28, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x52, 0x92, 0x41, 0x4f, 0x0a, + 0x4d, 0x2a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xc2, + 0x03, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, + 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, + 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, + 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, + 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, + 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, + 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x49, 0x92, 0x41, 0x46, 0x0a, 0x44, 0x2a, + 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, + 0xe4, 0xbd, 0x93, 0x32, 0x9a, 0x05, 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x92, 0x01, + 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x92, + 0x41, 0x2c, 0x12, 0x08, 0x45, 0x63, 0x68, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, 0x45, 0x63, + 0x68, 0x6f, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, 0xa8, 0xe4, + 0xba, 0x8e, 0xe5, 0xbc, 0x80, 0xe5, 0x8f, 0x91, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x63, + 0x68, 0x6f, 0x12, 0x9b, 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x5c, 0x92, 0x41, 0x38, 0x12, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2c, 0x50, 0x69, 0x6e, 0x67, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe6, 0x98, 0xaf, 0xe5, 0x90, 0xa6, 0xe5, 0xad, 0x98, 0xe6, 0xb4, 0xbb, 0x12, - 0xad, 0x01, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x92, 0x41, - 0x3e, 0x12, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, - 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe5, 0x81, 0xa5, 0xe5, 0xba, 0xb7, 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x12, - 0xad, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x92, 0x41, - 0x3e, 0x12, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, - 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x32, - 0xc2, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x92, - 0x41, 0x22, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x32, 0xce, 0x01, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x12, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x92, 0x41, 0x26, 0x12, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xe5, - 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x32, 0x9a, 0x6d, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, - 0x12, 0xe8, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x22, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xd6, 0x01, 0x0a, 0x0c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, + 0xe5, 0x8a, 0xa1, 0xe6, 0x98, 0xaf, 0xe5, 0x90, 0xa6, 0xe5, 0xad, 0x98, 0xe6, 0xb4, 0xbb, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x6e, 0x67, + 0x12, 0xad, 0x01, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x12, 0x0b, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x7a, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, 0xe5, 0x8a, 0xa1, + 0xe5, 0x81, 0xa5, 0xe5, 0xba, 0xb7, 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, + 0x12, 0xad, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x59, 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, - 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x11, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xf4, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x1a, 0x72, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x02, 0x0a, 0x0d, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x12, 0x0b, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x9c, 0x8d, 0xe5, 0x8a, 0xa1, + 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0xc2, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x08, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x71, 0x92, 0x41, 0x22, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0x8a, 0x82, + 0xe7, 0x82, 0xb9, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, + 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x32, 0xce, 0x01, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2c, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe9, 0x87, 0x8d, 0xe6, - 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0xa9, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, - 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xcc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8d, 0x01, 0x1a, 0x87, 0x01, 0x2f, 0x63, 0x6c, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x92, 0x41, 0x26, 0x12, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2f, 0x7b, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x35, 0x12, 0x17, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe6, 0x9a, 0x82, 0xe5, 0x81, 0x9c, 0xe6, 0x88, 0x96, 0xe6, 0x81, - 0xa2, 0xe5, 0xa4, 0x8d, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0xfa, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, - 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x1a, 0x78, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x27, 0x12, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x12, 0xa9, 0x02, 0x0a, - 0x12, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x82, 0x01, 0x1a, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x32, 0x9a, 0x6d, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, + 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3f, 0x12, 0x16, 0x52, 0x65, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x25, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, - 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xf1, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, - 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe5, 0x88, 0xa0, 0xe9, 0x99, - 0xa4, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xa2, 0x02, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, + 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, 0x22, + 0x12, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd6, 0x01, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xbf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7c, 0x12, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x92, 0x41, + 0x25, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x22, + 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xf4, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x92, 0x41, 0x25, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe6, 0x9b, + 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, 0x2a, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, 0x3a, 0x12, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0xb6, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xd8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, 0x01, 0x12, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x85, 0x02, 0x0a, + 0x0d, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1f, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, + 0x92, 0x41, 0x2c, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x3a, 0x01, 0x2a, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0xa9, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xcc, 0x01, 0x92, 0x41, 0x35, 0x12, 0x17, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x1a, 0xe6, 0x9a, 0x82, 0xe5, 0x81, 0x9c, 0xe6, 0x88, 0x96, 0xe6, 0x81, 0xa2, 0xe5, 0xa4, + 0x8d, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x8d, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, + 0x12, 0xfa, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, + 0x92, 0x41, 0x27, 0x12, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, + 0x3a, 0x01, 0x2a, 0x1a, 0x78, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0xa9, 0x02, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, + 0x3f, 0x12, 0x16, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe9, 0x87, 0x8d, 0xe6, 0x96, + 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x82, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, @@ -5253,285 +5523,356 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x44, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa2, 0x01, 0x92, 0x41, 0x25, 0x12, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x11, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa2, 0x02, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xbf, 0x01, 0x92, 0x41, 0x3a, 0x12, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7c, 0x12, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0xb6, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xd8, 0x01, 0x92, 0x41, 0x44, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, 0xb7, - 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xaa, 0x02, 0x0a, 0x15, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x8b, 0x01, 0x1a, 0x85, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, - 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x37, - 0x12, 0x19, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe5, 0x9b, 0x9e, - 0xe6, 0xbb, 0x9a, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, + 0x01, 0x12, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xaa, 0x02, 0x0a, 0x15, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcc, 0x01, 0x92, 0x41, 0x37, 0x12, + 0x19, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe5, 0x9b, 0x9e, 0xe6, + 0xbb, 0x9a, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8b, 0x01, 0x3a, 0x01, 0x2a, + 0x1a, 0x85, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x9d, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x53, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, + 0xe1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x53, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xe1, - 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x12, 0xde, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x44, 0x53, 0x12, 0x1b, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, + 0x47, 0x65, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x73, 0x12, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xcc, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x81, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, - 0xa1, 0xa8, 0x12, 0xde, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x44, 0x53, 0x12, 0x1b, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, - 0x12, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x12, 0xea, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x81, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x22, 0x53, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, + 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x76, 0x3a, 0x01, 0x2a, 0x1a, 0x71, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, + 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xff, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x53, 0x12, 0x1f, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb2, 0x01, + 0x92, 0x41, 0x2b, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x7e, 0x3a, 0x01, 0x2a, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, - 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, - 0x65, 0x74, 0x12, 0xea, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x12, - 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x76, 0x1a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, - 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, - 0xff, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x53, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb2, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7e, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2b, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe9, 0x87, 0x8d, 0xe6, 0x96, - 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x12, 0x98, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, 0x35, 0x12, 0x18, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x98, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xb9, 0x01, 0x92, 0x41, 0x35, 0x12, 0x18, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xab, 0x02, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, - 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x89, 0x01, - 0x12, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x3e, 0x12, 0x15, 0x47, 0x65, - 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, 0xb7, - 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xa0, 0x02, 0x0a, 0x11, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xc6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, 0x01, 0x1a, 0x84, - 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x32, 0x12, 0x15, 0x52, 0x6f, 0x6c, + 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x02, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, + 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd1, 0x01, 0x92, 0x41, 0x3e, 0x12, 0x15, 0x47, + 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, + 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x89, 0x01, 0x12, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xa0, 0x02, 0x0a, 0x11, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc6, 0x01, 0x92, 0x41, 0x32, 0x12, 0x15, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xe7, 0x01, - 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x73, 0x2a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, 0xe7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x54, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x6e, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x8a, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x84, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x28, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x12, 0x1b, 0x2e, 0x63, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xe7, + 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x20, 0x12, + 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, + 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x73, 0x2a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x54, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x9f, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x54, 0x53, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x12, 0x1b, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0a, + 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x75, 0x12, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x01, 0x2a, 0x22, 0x55, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x12, 0xf0, + 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, - 0x12, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x22, 0x55, 0x2f, + 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x92, 0x41, 0x23, + 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, + 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x3a, 0x01, 0x2a, 0x1a, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0x85, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x54, 0x53, + 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0xb7, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, + 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, + 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7b, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x9e, 0x02, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbe, 0x01, 0x92, 0x41, 0x38, 0x12, + 0x19, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x12, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, - 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xf0, 0x01, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xb1, 0x02, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, + 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd6, 0x01, 0x92, 0x41, 0x41, 0x12, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0xe5, 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x8b, 0x01, 0x12, 0x88, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xa6, + 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x78, 0x1a, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x12, 0x85, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x54, 0x53, 0x12, - 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x1a, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x11, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, - 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x9e, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbe, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x7d, 0x12, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, - 0x38, 0x12, 0x19, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xb1, 0x02, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, - 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xd6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8b, 0x01, 0x12, 0x88, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, 0x35, 0x12, + 0x16, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0x20, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, @@ -5539,437 +5880,416 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x41, 0x12, 0x16, 0x47, 0x65, - 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0xe5, 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xa6, 0x02, - 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x8c, 0x01, 0x1a, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, - 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, - 0x35, 0x12, 0x16, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, - 0x9a, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xf6, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x53, 0x54, 0x53, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xac, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7e, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x53, 0x54, 0x53, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xac, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x54, + 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, + 0x65, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7e, 0x3a, 0x01, 0x2a, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x12, 0xa6, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, + 0x54, 0x53, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, + 0x3e, 0x12, 0x13, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, 0x53, + 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x53, 0x63, 0x61, 0x6c, - 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x12, - 0xa6, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, - 0x53, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x83, 0x01, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, + 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0xed, 0x01, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x75, 0x2a, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3e, 0x12, 0x13, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, 0x53, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x27, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, - 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xed, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x2a, 0x73, 0x2f, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x06, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x4a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x96, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4a, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, + 0x6f, 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, + 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x05, 0x47, 0x65, + 0x74, 0x43, 0x4a, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, + 0x01, 0x92, 0x41, 0x1b, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x7d, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4a, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x72, 0x6f, + 0x6e, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xdd, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x4a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, + 0x12, 0xe6, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, + 0x1e, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, - 0x62, 0x73, 0x92, 0x41, 0x23, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4a, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, - 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xda, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, - 0x43, 0x4a, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1b, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, - 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, - 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xc7, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, - 0x1e, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, - 0xe6, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe3, 0x01, 0x0a, 0x08, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, + 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xd7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x06, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x8e, 0x01, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xe3, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x92, 0x41, + 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x52, 0x3a, 0x01, 0x2a, 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, + 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xe0, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x94, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x4a, 0x6f, + 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x3a, 0x01, 0x2a, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, - 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1e, - 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xd7, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, - 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, - 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8e, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x12, - 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, - 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, - 0x4a, 0x6f, 0x62, 0x12, 0xe0, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x94, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, + 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, + 0xf6, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x37, 0x12, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x23, 0xe9, + 0x80, 0x9a, 0xe8, 0xbf, 0x87, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, + 0xb0, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, 0xe8, + 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, - 0x96, 0xb0, 0x20, 0x4a, 0x6f, 0x62, 0x12, 0xdd, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, - 0x99, 0xa4, 0x20, 0x4a, 0x6f, 0x62, 0x12, 0xd5, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, 0xd2, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8e, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x92, 0x41, 0x1f, 0x12, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xf6, - 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x92, 0x41, 0x37, - 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x23, 0xe9, 0x80, 0x9a, 0xe8, 0xbf, 0x87, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, - 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd2, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8d, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x17, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xbf, 0x01, 0x0a, - 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, - 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xde, - 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x70, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x6f, 0x64, 0x12, - 0xdb, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8d, 0x01, + 0x92, 0x41, 0x17, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, + 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, + 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xbf, 0x01, + 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, + 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x3a, 0x01, 0x2a, + 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, + 0xde, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x92, 0x41, 0x1a, + 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, + 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, + 0x3a, 0x01, 0x2a, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xed, 0x01, - 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x12, 0xdb, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x92, 0x41, + 0x1a, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xed, + 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x92, 0x41, 0x29, 0x12, 0x0d, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, + 0x9a, 0x84, 0x20, 0x50, 0x56, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x72, 0x12, 0x70, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, + 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x76, 0x63, 0x73, 0x12, 0xf7, + 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x72, 0x12, - 0x70, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xaf, 0x01, 0x92, 0x41, 0x2e, 0x12, 0x0c, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, + 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, + 0x12, 0x76, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x12, 0xf9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x92, 0x41, 0x2f, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, + 0x9a, 0x84, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x12, + 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x76, 0x63, - 0x73, 0x92, 0x41, 0x29, 0x12, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, - 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x56, 0x43, 0x12, 0xf7, 0x01, - 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xaf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x92, 0x41, 0x2e, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, - 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xf9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x12, 0x73, 0x2f, 0x63, + 0x65, 0x73, 0x70, 0x22, 0xa8, 0x01, 0x92, 0x41, 0x24, 0x12, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe9, 0x87, 0x8d, + 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x7b, 0x3a, 0x01, 0x2a, 0x1a, 0x76, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x91, + 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x92, 0x41, 0x35, 0x12, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x20, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x8c, 0x85, 0xe5, + 0x90, 0xab, 0xe7, 0x9a, 0x84, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x12, 0xa2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xd0, 0x01, 0x92, 0x41, 0x3a, 0x12, 0x10, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x26, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe4, + 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe4, 0xbf, + 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, - 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x92, 0x41, 0x2f, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, - 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0xf7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0xa8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x1a, 0x76, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x24, 0x12, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe9, 0x87, 0x8d, - 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x12, 0x91, 0x02, - 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, - 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x92, 0x41, 0x35, 0x12, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x20, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x8c, 0x85, 0xe5, - 0x90, 0xab, 0xe7, 0x9a, 0x84, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xa2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xd0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x3a, 0x12, 0x10, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x26, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, - 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xc9, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xec, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x95, 0x01, 0x12, 0x92, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x92, 0x41, 0x4d, 0x12, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x32, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, - 0xe7, 0x8e, 0xaf, 0xe5, 0xa2, 0x83, 0xe5, 0x8f, 0x98, 0xe9, 0x87, 0x8f, 0xe4, 0xbf, 0xa1, 0xe6, - 0x81, 0xaf, 0x32, 0x9d, 0x1c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0xdf, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, - 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc9, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xec, 0x01, 0x92, 0x41, 0x4d, 0x12, 0x17, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x32, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, + 0x9a, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, + 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe7, 0x8e, 0xaf, 0xe5, 0xa2, 0x83, 0xe5, 0x8f, 0x98, 0xe9, 0x87, + 0x8f, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x95, 0x01, 0x12, 0x92, + 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, - 0x12, 0xdc, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x32, 0x9d, 0x1c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0xdf, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, @@ -5977,1102 +6297,1151 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0xc9, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, - 0xe5, 0xbb, 0xba, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x09, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, - 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1f, 0x12, - 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xde, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, - 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, + 0x12, 0xc9, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7e, 0x92, 0x41, + 0x1f, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0xe8, 0x01, 0x0a, + 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x12, 0x6e, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, + 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x1c, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, - 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc8, 0x01, - 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xde, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x55, 0x22, 0x50, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, - 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, 0x1a, 0x6e, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, - 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, 0x43, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x2a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, - 0xa4, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x06, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x50, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x50, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xdc, 0x01, 0x0a, 0x05, - 0x47, 0x65, 0x74, 0x45, 0x50, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, - 0x65, 0x74, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xf6, 0x01, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, + 0x12, 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, 0x65, + 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x12, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x50, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe7, 0x8a, 0xb6, - 0xe6, 0x80, 0x81, 0x12, 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, - 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, - 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, - 0xe8, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc8, + 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7d, 0x92, 0x41, 0x1f, 0x12, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, + 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x55, 0x3a, 0x01, 0x2a, 0x22, 0x50, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, + 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, + 0x3a, 0x01, 0x2a, 0x1a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x32, 0xd2, 0x11, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xdf, 0x01, - 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4d, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, + 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, + 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x98, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, 0x43, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x2a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdf, 0x01, 0x0a, 0x06, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x50, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x50, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xdc, 0x01, 0x0a, + 0x05, 0x47, 0x65, 0x74, 0x45, 0x50, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x45, 0x50, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xab, 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0f, 0x47, 0x65, + 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x7f, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0xdc, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x12, 0xe8, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xc9, - 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x6d, 0x61, 0x70, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, - 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe8, 0x01, 0x0a, 0x08, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, + 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x08, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x32, 0xd2, 0x11, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xdf, + 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4d, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x1a, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, + 0x12, 0xdc, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, - 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, - 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe1, 0x01, - 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x63, + 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, - 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x92, 0x41, 0x26, 0x12, 0x0e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xde, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x92, 0x41, 0x1e, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x12, 0xcb, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x22, 0x4e, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x21, 0x12, - 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0xea, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x1a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x92, 0x41, 0x20, 0x12, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, + 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x21, 0x12, 0x10, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0xe7, 0x01, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x2a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x08, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, + 0x96, 0xb0, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x21, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, - 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x32, 0xb8, 0x1d, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x12, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x92, - 0x41, 0x2c, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd5, - 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, 0x56, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x12, 0x61, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x24, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, - 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x22, 0x5a, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0x9b, 0xe5, - 0xbb, 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x12, 0xe1, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x1a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x27, - 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x93, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, 0x2f, 0x63, 0x6c, + 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe1, + 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x26, 0x12, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x14, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x27, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x17, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x12, 0xde, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x92, 0x41, + 0x1e, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7d, 0x92, 0x41, 0x21, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, + 0xba, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, 0x01, + 0x2a, 0x22, 0x4e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x12, 0xea, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xb4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, 0x77, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x92, 0x41, 0x32, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x23, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xfa, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x50, - 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x12, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x50, - 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x6c, 0x61, 0x69, 0x6d, 0x12, 0xb0, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xe1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x92, 0x41, 0x4b, 0x12, 0x13, 0x47, 0x65, - 0x74, 0x50, 0x56, 0x43, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x34, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x20, - 0xe8, 0xa2, 0xab, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe6, 0x8c, 0x82, 0xe8, 0xbd, 0xbd, 0xe7, 0x9a, - 0x84, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x22, 0x60, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x12, 0x86, 0x02, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, - 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x83, 0x02, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, - 0x2a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x22, 0x9b, 0x01, 0x92, 0x41, 0x21, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, + 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x3a, 0x01, 0x2a, + 0x1a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x12, 0xd1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, - 0x12, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x92, 0x41, 0x28, 0x12, 0x0a, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x43, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x13, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xd3, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x88, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x22, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x08, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x1a, - 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x2a, 0x5e, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x23, 0x12, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, - 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x8f, 0x09, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x12, 0xe7, 0x01, 0x0a, 0x06, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0xa0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0xe5, - 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xe4, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x41, 0x12, - 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe7, + 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, + 0x92, 0x41, 0x21, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x2a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xb8, 0x1d, 0x0a, 0x07, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x12, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x92, 0x41, + 0x2c, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x22, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xd2, 0x01, 0x0a, - 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0xd5, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, 0x56, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, - 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, 0x9b, 0xe5, - 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, - 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe6, - 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xa2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x92, 0x41, 0x24, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, + 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x63, 0x12, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xda, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x3a, 0x01, 0x2a, 0x22, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, - 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x86, 0x08, 0x0a, 0x03, 0x48, 0x50, 0x41, 0x12, 0xcc, 0x01, 0x0a, - 0x07, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x59, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x48, 0x50, 0x41, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xc9, 0x01, 0x0a, 0x06, - 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x12, 0x60, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, 0x12, - 0x0a, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x48, 0x50, 0x41, 0x12, 0xb6, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x12, 0xe1, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x96, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x66, 0x3a, 0x01, 0x2a, 0x1a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x48, 0x50, 0x41, - 0x12, 0xd5, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x1a, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xb4, 0x01, 0x92, 0x41, 0x32, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x43, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x23, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, + 0x77, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, + 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, + 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x80, 0x01, 0x12, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x48, 0x50, 0x41, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb0, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, + 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x2a, 0x60, 0x2f, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xe1, 0x01, 0x92, 0x41, 0x4b, 0x12, 0x13, 0x47, 0x65, 0x74, 0x50, + 0x56, 0x43, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x34, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x20, 0xe8, 0xa2, + 0xab, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe6, 0x8c, 0x82, 0xe8, 0xbd, 0xbd, 0xe7, 0x9a, 0x84, 0xe4, + 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x48, 0x50, 0x41, 0x32, 0xea, 0x10, - 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x07, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x63, 0x6c, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, + 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x3a, 0x01, 0x2a, + 0x22, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x12, 0x86, 0x02, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, + 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, + 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, - 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x88, 0x97, - 0xe8, 0xa1, 0xa8, 0x12, 0xb2, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x4c, 0x12, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x83, 0x02, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, + 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, + 0x01, 0x2a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, - 0x12, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x94, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, - 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x92, 0x41, 0x2d, 0x12, 0x0c, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1d, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, - 0xba, 0x90, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xdf, 0x01, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, - 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, - 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xe0, 0x01, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, - 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x92, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x61, 0x22, 0x5c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, - 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0xe8, - 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xeb, - 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x1a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0xe8, 0x87, 0xaa, - 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xa0, 0x02, 0x0a, - 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, - 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x12, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x72, 0x1a, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, - 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x59, 0x12, 0x0d, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, - 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x48, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xef, - 0xbc, 0x88, 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x12, - 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x2a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8a, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0a, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, + 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x12, 0x57, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x43, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x92, 0x41, 0x20, + 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, - 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x28, 0x12, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, - 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xcd, 0x02, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x12, - 0x28, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x88, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, + 0x3a, 0x01, 0x2a, 0x22, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, + 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xf0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, - 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x70, 0x12, 0x14, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x58, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0xe8, 0x87, - 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xb8, 0x8b, - 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0xef, 0xbc, 0x88, 0xe4, 0xbb, 0x85, - 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x32, 0xef, 0x0d, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xe8, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4b, - 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x92, - 0x41, 0x30, 0x12, 0x15, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x4b, 0x38, 0x53, 0x20, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0xa8, 0xa1, 0xe7, - 0x89, 0x88, 0x12, 0xc0, 0x01, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe6, 0x9b, 0xb4, + 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x01, 0x2a, 0x1a, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x92, 0x41, 0x1d, 0x12, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xae, 0xa2, - 0xe9, 0x98, 0x85, 0x30, 0x01, 0x12, 0xe8, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x2f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x42, 0x12, 0x1e, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x43, 0x61, 0x63, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, - 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x79, 0x20, 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, - 0x12, 0xff, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x6f, - 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x22, 0x56, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x08, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x60, 0x2a, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x32, 0x8f, 0x09, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x12, 0xe7, 0x01, 0x0a, + 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, + 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3b, 0x12, 0x1c, 0x46, 0x6f, 0x72, 0x6d, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, - 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe9, 0xa2, 0x84, 0xe8, - 0xa7, 0x88, 0x12, 0xf0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, - 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x92, 0x41, 0x41, 0x12, 0x1e, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x27, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, - 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0x20, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xb8, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, - 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, - 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x12, 0x5a, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, - 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x92, 0x41, 0x63, 0x12, 0x2d, 0x47, - 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0x32, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, - 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x99, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbd, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x92, 0x41, 0x63, 0x12, 0x24, 0x47, 0x65, 0x74, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, - 0x3b, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe4, 0xb8, 0x8b, - 0xe6, 0x8b, 0x89, 0xe6, 0xa1, 0x86, 0xe9, 0x80, 0x89, 0xe9, 0xa1, 0xb9, 0xe7, 0x9a, 0x84, 0xe8, - 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xef, 0xbc, 0x88, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0xef, 0xbc, 0x89, 0x32, 0xed, 0x09, 0x0a, - 0x0a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xca, 0x01, 0x0a, 0x0f, - 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, - 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, - 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, - 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x92, 0x41, 0x2c, 0x12, 0x10, 0x47, 0x65, - 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x18, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xcd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x92, 0x41, 0x32, 0x12, 0x16, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, - 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x18, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, 0x83, 0x85, 0x12, 0xc8, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x41, + 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x29, 0x12, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x13, - 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0x31, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x73, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x1a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x28, 0x12, 0x12, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x12, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0x12, 0xd5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x49, 0x1a, 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2a, - 0x12, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x0f, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, - 0xbe, 0xe9, 0x87, 0x8d, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x63, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, + 0x22, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, + 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, + 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x92, 0x41, 0x2e, 0x12, 0x12, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x1a, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x32, 0xc3, 0x06, 0x0a, - 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x84, 0x02, - 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, - 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x62, 0x61, + 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0xf0, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, + 0x92, 0x41, 0x25, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x15, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, + 0x2a, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xa2, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x41, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0x86, 0x08, 0x0a, 0x03, 0x48, 0x50, 0x41, 0x12, 0xcc, 0x01, + 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x84, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x48, 0x50, 0x41, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x5b, 0x12, 0x59, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x12, 0xc9, 0x01, 0x0a, + 0x06, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x83, 0x01, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x48, 0x50, 0x41, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x12, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, + 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb6, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x6b, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, + 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x68, 0x70, + 0x61, 0x12, 0xd5, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, + 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x65, 0x3a, 0x01, 0x2a, 0x1a, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, + 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x2a, 0x60, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0x8f, + 0x17, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x12, 0xb5, 0x01, 0x0a, + 0x07, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x6e, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, + 0x52, 0x44, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, + 0x43, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x72, 0x64, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6d, 0x92, 0x41, 0x18, 0x12, + 0x0a, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, 0x4a, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, + 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x94, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, + 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x20, + 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, + 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xdf, 0x01, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, + 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x96, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x92, 0x41, + 0x3d, 0x12, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xfc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xac, 0x01, 0x92, 0x41, 0x2f, 0x12, 0x0f, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe9, 0x87, + 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, + 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, + 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x8a, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, 0x01, 0x92, 0x41, 0x32, 0x12, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe5, 0x9b, 0x9e, + 0xe6, 0xbb, 0x9a, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7f, 0x3a, 0x01, 0x2a, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, + 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x92, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, + 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x61, 0x3a, 0x01, 0x2a, 0x22, 0x5c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, + 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x3a, 0x01, 0x2a, 0x1a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, + 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0xa0, 0x02, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, + 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd4, + 0x01, 0x92, 0x41, 0x59, 0x12, 0x0d, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x48, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xef, 0xbc, 0x88, + 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, + 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x72, 0x3a, 0x01, 0x2a, 0x1a, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0xa0, 0xe9, 0x99, + 0xa4, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x2a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xcd, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x12, 0x28, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xf0, 0x01, + 0x92, 0x41, 0x70, 0x12, 0x14, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x58, 0xe9, 0x87, 0x8d, 0xe6, 0x96, + 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, + 0x50, 0x6f, 0x64, 0xef, 0xbc, 0x88, 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, + 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, 0x2a, 0x1a, 0x72, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, + 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x32, 0xef, 0x0d, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xe8, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x4f, 0x22, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6b, 0x69, 0x6e, 0x64, 0x7d, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x40, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x20, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x1a, 0x21, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, - 0xbe, 0xa4, 0xe5, 0x8e, 0x9f, 0xe7, 0x94, 0x9f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xa8, 0x02, 0x0a, 0x1f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, - 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb0, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x22, 0x58, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x30, 0x12, + 0x15, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4b, + 0x38, 0x53, 0x20, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0xa8, 0xa1, 0xe7, 0x89, 0x88, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x64, 0x7d, - 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x4a, 0x12, 0x22, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x24, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, - 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0x80, 0x02, 0x0a, 0x19, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x2e, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x6d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x12, 0xc0, 0x01, 0x0a, 0x09, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x92, 0x41, 0x1d, 0x12, 0x0d, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0c, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, + 0x48, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x30, 0x01, 0x12, 0xe8, 0x01, 0x0a, 0x18, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x43, 0x61, 0x63, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, 0xe4, 0xb8, 0xbb, 0xe5, + 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x20, + 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x6d, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, 0x3b, 0x12, 0x1c, 0x46, 0x6f, + 0x72, 0x6d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0xa1, 0xa8, 0xe5, + 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, + 0x93, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x3a, 0x01, 0x2a, + 0x22, 0x56, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0xf0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x41, 0x12, 0x1e, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xa1, 0xa8, 0xe5, + 0x8d, 0x95, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, + 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xb8, 0x02, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x94, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc8, 0x01, 0x92, 0x41, + 0x63, 0x12, 0x2d, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x1a, 0x32, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, + 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x99, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xbd, 0x01, 0x92, 0x41, 0x63, 0x12, 0x24, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0x3b, + 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe4, 0xb8, 0x8b, 0xe6, + 0x8b, 0x89, 0xe6, 0xa1, 0x86, 0xe9, 0x80, 0x89, 0xe9, 0xa1, 0xb9, 0xe7, 0x9a, 0x84, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xef, 0xbc, 0x88, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x32, 0xed, 0x09, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0xca, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x92, + 0x41, 0x2c, 0x12, 0x10, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, + 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x3d, 0x12, 0x21, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xcd, + 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7a, 0x92, 0x41, 0x32, 0x12, 0x16, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, + 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, + 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, + 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, 0x83, 0x85, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, + 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xc8, + 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x92, 0x41, 0x29, 0x12, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, + 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, + 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x73, 0x92, 0x41, 0x28, 0x12, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x12, 0xe6, 0x9b, + 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x01, 0x2a, 0x1a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7c, 0x92, 0x41, 0x2a, 0x12, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, + 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x1a, 0x0f, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x87, 0x8d, 0xe5, 0x91, 0xbd, 0xe5, 0x90, + 0x8d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x1a, 0x44, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x92, 0x41, 0x2e, 0x12, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x1a, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, + 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, + 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x32, 0xc3, 0x06, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x84, 0x02, 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x98, 0x01, 0x92, 0x41, 0x40, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, - 0x87, 0x8f, 0x42, 0x43, 0x5a, 0x13, 0x2e, 0x2f, 0x3b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x92, 0x41, 0x2b, 0x12, 0x26, 0x0a, 0x18, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x20, 0x41, 0x70, 0x69, 0x44, 0x6f, 0x63, 0x2a, 0x05, 0x0a, 0x03, 0x4d, 0x49, 0x54, 0x32, - 0x03, 0x31, 0x2e, 0x30, 0x2a, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x1a, 0x21, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0xe5, 0x8e, 0x9f, 0xe7, 0x94, 0x9f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x22, 0x4a, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6b, 0x69, 0x6e, 0x64, 0x7d, 0x12, 0xa8, 0x02, 0x0a, 0x1f, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xb0, 0x01, 0x92, 0x41, 0x4a, 0x12, 0x22, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x24, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, + 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, + 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x3a, 0x01, 0x2a, 0x22, 0x58, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x72, 0x64, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x80, 0x02, 0x0a, 0x19, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x94, 0x01, 0x92, 0x41, 0x3d, 0x12, 0x21, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, + 0xb0, 0xe9, 0x87, 0x8f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x22, 0x49, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x43, 0x92, 0x41, 0x2b, 0x12, 0x26, 0x0a, + 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x20, 0x41, 0x70, 0x69, 0x44, 0x6f, 0x63, 0x2a, 0x05, 0x0a, 0x03, 0x4d, 0x49, 0x54, + 0x32, 0x03, 0x31, 0x2e, 0x30, 0x2a, 0x01, 0x01, 0x5a, 0x13, 0x2e, 0x2f, 0x3b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7087,7 +7456,7 @@ func file_cluster_resources_proto_rawDescGZIP() []byte { return file_cluster_resources_proto_rawDescData } -var file_cluster_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 52) +var file_cluster_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_cluster_resources_proto_goTypes = []interface{}{ (*EchoReq)(nil), // 0: clusterresources.EchoReq (*EchoResp)(nil), // 1: clusterresources.EchoResp @@ -7114,57 +7483,60 @@ var file_cluster_resources_proto_goTypes = []interface{}{ (*GetK8SResTemplateReq)(nil), // 22: clusterresources.GetK8SResTemplateReq (*CObjListReq)(nil), // 23: clusterresources.CObjListReq (*CObjGetReq)(nil), // 24: clusterresources.CObjGetReq - (*CObjCreateReq)(nil), // 25: clusterresources.CObjCreateReq - (*CObjUpdateReq)(nil), // 26: clusterresources.CObjUpdateReq - (*CObjScaleReq)(nil), // 27: clusterresources.CObjScaleReq - (*CObjDeleteReq)(nil), // 28: clusterresources.CObjDeleteReq - (*CObjBatchRescheduleReq)(nil), // 29: clusterresources.CObjBatchRescheduleReq - (*CommonResp)(nil), // 30: clusterresources.CommonResp - (*CommonListResp)(nil), // 31: clusterresources.CommonListResp - (*SubscribeReq)(nil), // 32: clusterresources.SubscribeReq - (*SubscribeResp)(nil), // 33: clusterresources.SubscribeResp - (*InvalidateDiscoveryCacheReq)(nil), // 34: clusterresources.InvalidateDiscoveryCacheReq - (*FormRenderPreviewReq)(nil), // 35: clusterresources.FormRenderPreviewReq - (*GetResFormSchemaReq)(nil), // 36: clusterresources.GetResFormSchemaReq - (*GetFormSupportedApiVersionsReq)(nil), // 37: clusterresources.GetFormSupportedApiVersionsReq - (*GetResSelectItemsReq)(nil), // 38: clusterresources.GetResSelectItemsReq - (*ListViewConfigsReq)(nil), // 39: clusterresources.ListViewConfigsReq - (*GetViewConfigReq)(nil), // 40: clusterresources.GetViewConfigReq - (*ViewFilter)(nil), // 41: clusterresources.ViewFilter - (*CreateViewConfigReq)(nil), // 42: clusterresources.CreateViewConfigReq - (*UpdateViewConfigReq)(nil), // 43: clusterresources.UpdateViewConfigReq - (*RenameViewConfigReq)(nil), // 44: clusterresources.RenameViewConfigReq - (*DeleteViewConfigReq)(nil), // 45: clusterresources.DeleteViewConfigReq - (*ClusterNamespaces)(nil), // 46: clusterresources.ClusterNamespaces - (*LabelSelector)(nil), // 47: clusterresources.LabelSelector - (*FetchMultiClusterResourceReq)(nil), // 48: clusterresources.FetchMultiClusterResourceReq - (*FetchMultiClusterCustomResourceReq)(nil), // 49: clusterresources.FetchMultiClusterCustomResourceReq - (*MultiClusterResourceCountReq)(nil), // 50: clusterresources.MultiClusterResourceCountReq - nil, // 51: clusterresources.ViewFilter.LabelSelectorEntry - (*_struct.Struct)(nil), // 52: google.protobuf.Struct - (*_struct.ListValue)(nil), // 53: google.protobuf.ListValue + (*CObjHistoryReq)(nil), // 25: clusterresources.CObjHistoryReq + (*CObjRestartReq)(nil), // 26: clusterresources.CObjRestartReq + (*CObjRolloutReq)(nil), // 27: clusterresources.CObjRolloutReq + (*CObjCreateReq)(nil), // 28: clusterresources.CObjCreateReq + (*CObjUpdateReq)(nil), // 29: clusterresources.CObjUpdateReq + (*CObjScaleReq)(nil), // 30: clusterresources.CObjScaleReq + (*CObjDeleteReq)(nil), // 31: clusterresources.CObjDeleteReq + (*CObjBatchRescheduleReq)(nil), // 32: clusterresources.CObjBatchRescheduleReq + (*CommonResp)(nil), // 33: clusterresources.CommonResp + (*CommonListResp)(nil), // 34: clusterresources.CommonListResp + (*SubscribeReq)(nil), // 35: clusterresources.SubscribeReq + (*SubscribeResp)(nil), // 36: clusterresources.SubscribeResp + (*InvalidateDiscoveryCacheReq)(nil), // 37: clusterresources.InvalidateDiscoveryCacheReq + (*FormRenderPreviewReq)(nil), // 38: clusterresources.FormRenderPreviewReq + (*GetResFormSchemaReq)(nil), // 39: clusterresources.GetResFormSchemaReq + (*GetFormSupportedApiVersionsReq)(nil), // 40: clusterresources.GetFormSupportedApiVersionsReq + (*GetResSelectItemsReq)(nil), // 41: clusterresources.GetResSelectItemsReq + (*ListViewConfigsReq)(nil), // 42: clusterresources.ListViewConfigsReq + (*GetViewConfigReq)(nil), // 43: clusterresources.GetViewConfigReq + (*ViewFilter)(nil), // 44: clusterresources.ViewFilter + (*CreateViewConfigReq)(nil), // 45: clusterresources.CreateViewConfigReq + (*UpdateViewConfigReq)(nil), // 46: clusterresources.UpdateViewConfigReq + (*RenameViewConfigReq)(nil), // 47: clusterresources.RenameViewConfigReq + (*DeleteViewConfigReq)(nil), // 48: clusterresources.DeleteViewConfigReq + (*ClusterNamespaces)(nil), // 49: clusterresources.ClusterNamespaces + (*LabelSelector)(nil), // 50: clusterresources.LabelSelector + (*FetchMultiClusterResourceReq)(nil), // 51: clusterresources.FetchMultiClusterResourceReq + (*FetchMultiClusterCustomResourceReq)(nil), // 52: clusterresources.FetchMultiClusterCustomResourceReq + (*MultiClusterResourceCountReq)(nil), // 53: clusterresources.MultiClusterResourceCountReq + nil, // 54: clusterresources.ViewFilter.LabelSelectorEntry + (*_struct.Struct)(nil), // 55: google.protobuf.Struct + (*_struct.ListValue)(nil), // 56: google.protobuf.ListValue } var file_cluster_resources_proto_depIdxs = []int32{ - 52, // 0: clusterresources.ResCreateReq.rawData:type_name -> google.protobuf.Struct - 52, // 1: clusterresources.ResUpdateReq.rawData:type_name -> google.protobuf.Struct - 52, // 2: clusterresources.CObjCreateReq.rawData:type_name -> google.protobuf.Struct - 52, // 3: clusterresources.CObjUpdateReq.rawData:type_name -> google.protobuf.Struct - 52, // 4: clusterresources.CommonResp.data:type_name -> google.protobuf.Struct - 52, // 5: clusterresources.CommonResp.webAnnotations:type_name -> google.protobuf.Struct - 53, // 6: clusterresources.CommonListResp.data:type_name -> google.protobuf.ListValue - 52, // 7: clusterresources.CommonListResp.webAnnotations:type_name -> google.protobuf.Struct - 52, // 8: clusterresources.SubscribeResp.manifest:type_name -> google.protobuf.Struct - 52, // 9: clusterresources.SubscribeResp.manifestExt:type_name -> google.protobuf.Struct - 52, // 10: clusterresources.FormRenderPreviewReq.formData:type_name -> google.protobuf.Struct - 51, // 11: clusterresources.ViewFilter.labelSelector:type_name -> clusterresources.ViewFilter.LabelSelectorEntry - 41, // 12: clusterresources.CreateViewConfigReq.filter:type_name -> clusterresources.ViewFilter - 41, // 13: clusterresources.UpdateViewConfigReq.filter:type_name -> clusterresources.ViewFilter - 46, // 14: clusterresources.FetchMultiClusterResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 15: clusterresources.FetchMultiClusterResourceReq.labelSelector:type_name -> clusterresources.LabelSelector - 46, // 16: clusterresources.FetchMultiClusterCustomResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 17: clusterresources.FetchMultiClusterCustomResourceReq.labelSelector:type_name -> clusterresources.LabelSelector - 46, // 18: clusterresources.MultiClusterResourceCountReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 19: clusterresources.MultiClusterResourceCountReq.labelSelector:type_name -> clusterresources.LabelSelector + 55, // 0: clusterresources.ResCreateReq.rawData:type_name -> google.protobuf.Struct + 55, // 1: clusterresources.ResUpdateReq.rawData:type_name -> google.protobuf.Struct + 55, // 2: clusterresources.CObjCreateReq.rawData:type_name -> google.protobuf.Struct + 55, // 3: clusterresources.CObjUpdateReq.rawData:type_name -> google.protobuf.Struct + 55, // 4: clusterresources.CommonResp.data:type_name -> google.protobuf.Struct + 55, // 5: clusterresources.CommonResp.webAnnotations:type_name -> google.protobuf.Struct + 56, // 6: clusterresources.CommonListResp.data:type_name -> google.protobuf.ListValue + 55, // 7: clusterresources.CommonListResp.webAnnotations:type_name -> google.protobuf.Struct + 55, // 8: clusterresources.SubscribeResp.manifest:type_name -> google.protobuf.Struct + 55, // 9: clusterresources.SubscribeResp.manifestExt:type_name -> google.protobuf.Struct + 55, // 10: clusterresources.FormRenderPreviewReq.formData:type_name -> google.protobuf.Struct + 54, // 11: clusterresources.ViewFilter.labelSelector:type_name -> clusterresources.ViewFilter.LabelSelectorEntry + 44, // 12: clusterresources.CreateViewConfigReq.filter:type_name -> clusterresources.ViewFilter + 44, // 13: clusterresources.UpdateViewConfigReq.filter:type_name -> clusterresources.ViewFilter + 49, // 14: clusterresources.FetchMultiClusterResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 15: clusterresources.FetchMultiClusterResourceReq.labelSelector:type_name -> clusterresources.LabelSelector + 49, // 16: clusterresources.FetchMultiClusterCustomResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 17: clusterresources.FetchMultiClusterCustomResourceReq.labelSelector:type_name -> clusterresources.LabelSelector + 49, // 18: clusterresources.MultiClusterResourceCountReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 19: clusterresources.MultiClusterResourceCountReq.labelSelector:type_name -> clusterresources.LabelSelector 0, // 20: clusterresources.Basic.Echo:input_type -> clusterresources.EchoReq 2, // 21: clusterresources.Basic.Ping:input_type -> clusterresources.PingReq 4, // 22: clusterresources.Basic.Healthz:input_type -> clusterresources.HealthzReq @@ -7283,168 +7655,174 @@ var file_cluster_resources_proto_depIdxs = []int32{ 9, // 135: clusterresources.CustomRes.GetCRD:input_type -> clusterresources.ResGetReq 23, // 136: clusterresources.CustomRes.ListCObj:input_type -> clusterresources.CObjListReq 24, // 137: clusterresources.CustomRes.GetCObj:input_type -> clusterresources.CObjGetReq - 25, // 138: clusterresources.CustomRes.CreateCObj:input_type -> clusterresources.CObjCreateReq - 26, // 139: clusterresources.CustomRes.UpdateCObj:input_type -> clusterresources.CObjUpdateReq - 27, // 140: clusterresources.CustomRes.ScaleCObj:input_type -> clusterresources.CObjScaleReq - 28, // 141: clusterresources.CustomRes.DeleteCObj:input_type -> clusterresources.CObjDeleteReq - 29, // 142: clusterresources.CustomRes.RescheduleCObjPo:input_type -> clusterresources.CObjBatchRescheduleReq - 22, // 143: clusterresources.Resource.GetK8SResTemplate:input_type -> clusterresources.GetK8SResTemplateReq - 32, // 144: clusterresources.Resource.Subscribe:input_type -> clusterresources.SubscribeReq - 34, // 145: clusterresources.Resource.InvalidateDiscoveryCache:input_type -> clusterresources.InvalidateDiscoveryCacheReq - 35, // 146: clusterresources.Resource.FormDataRenderPreview:input_type -> clusterresources.FormRenderPreviewReq - 36, // 147: clusterresources.Resource.GetResFormSchema:input_type -> clusterresources.GetResFormSchemaReq - 37, // 148: clusterresources.Resource.GetFormSupportedAPIVersions:input_type -> clusterresources.GetFormSupportedApiVersionsReq - 38, // 149: clusterresources.Resource.GetResSelectItems:input_type -> clusterresources.GetResSelectItemsReq - 39, // 150: clusterresources.ViewConfig.ListViewConfigs:input_type -> clusterresources.ListViewConfigsReq - 40, // 151: clusterresources.ViewConfig.GetViewConfig:input_type -> clusterresources.GetViewConfigReq - 42, // 152: clusterresources.ViewConfig.CreateViewConfig:input_type -> clusterresources.CreateViewConfigReq - 43, // 153: clusterresources.ViewConfig.UpdateViewConfig:input_type -> clusterresources.UpdateViewConfigReq - 44, // 154: clusterresources.ViewConfig.RenameViewConfig:input_type -> clusterresources.RenameViewConfigReq - 45, // 155: clusterresources.ViewConfig.DeleteViewConfig:input_type -> clusterresources.DeleteViewConfigReq - 48, // 156: clusterresources.MultiCluster.FetchMultiClusterResource:input_type -> clusterresources.FetchMultiClusterResourceReq - 49, // 157: clusterresources.MultiCluster.FetchMultiClusterCustomResource:input_type -> clusterresources.FetchMultiClusterCustomResourceReq - 50, // 158: clusterresources.MultiCluster.MultiClusterResourceCount:input_type -> clusterresources.MultiClusterResourceCountReq - 1, // 159: clusterresources.Basic.Echo:output_type -> clusterresources.EchoResp - 3, // 160: clusterresources.Basic.Ping:output_type -> clusterresources.PingResp - 5, // 161: clusterresources.Basic.Healthz:output_type -> clusterresources.HealthzResp - 7, // 162: clusterresources.Basic.Version:output_type -> clusterresources.VersionResp - 30, // 163: clusterresources.Node.ListNode:output_type -> clusterresources.CommonResp - 30, // 164: clusterresources.Namespace.ListNS:output_type -> clusterresources.CommonResp - 30, // 165: clusterresources.Workload.ListDeploy:output_type -> clusterresources.CommonResp - 30, // 166: clusterresources.Workload.GetDeploy:output_type -> clusterresources.CommonResp - 30, // 167: clusterresources.Workload.CreateDeploy:output_type -> clusterresources.CommonResp - 30, // 168: clusterresources.Workload.UpdateDeploy:output_type -> clusterresources.CommonResp - 30, // 169: clusterresources.Workload.RestartDeploy:output_type -> clusterresources.CommonResp - 30, // 170: clusterresources.Workload.PauseOrResumeDeploy:output_type -> clusterresources.CommonResp - 30, // 171: clusterresources.Workload.ScaleDeploy:output_type -> clusterresources.CommonResp - 30, // 172: clusterresources.Workload.RescheduleDeployPo:output_type -> clusterresources.CommonResp - 30, // 173: clusterresources.Workload.DeleteDeploy:output_type -> clusterresources.CommonResp - 31, // 174: clusterresources.Workload.GetDeployHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 175: clusterresources.Workload.GetDeployRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 176: clusterresources.Workload.RolloutDeployRevision:output_type -> clusterresources.CommonResp - 30, // 177: clusterresources.Workload.ListRS:output_type -> clusterresources.CommonResp - 30, // 178: clusterresources.Workload.ListDS:output_type -> clusterresources.CommonResp - 30, // 179: clusterresources.Workload.GetDS:output_type -> clusterresources.CommonResp - 30, // 180: clusterresources.Workload.CreateDS:output_type -> clusterresources.CommonResp - 30, // 181: clusterresources.Workload.UpdateDS:output_type -> clusterresources.CommonResp - 30, // 182: clusterresources.Workload.RestartDS:output_type -> clusterresources.CommonResp - 31, // 183: clusterresources.Workload.GetDSHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 184: clusterresources.Workload.GetDSRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 185: clusterresources.Workload.RolloutDSRevision:output_type -> clusterresources.CommonResp - 30, // 186: clusterresources.Workload.DeleteDS:output_type -> clusterresources.CommonResp - 30, // 187: clusterresources.Workload.ListSTS:output_type -> clusterresources.CommonResp - 30, // 188: clusterresources.Workload.GetSTS:output_type -> clusterresources.CommonResp - 30, // 189: clusterresources.Workload.CreateSTS:output_type -> clusterresources.CommonResp - 30, // 190: clusterresources.Workload.UpdateSTS:output_type -> clusterresources.CommonResp - 30, // 191: clusterresources.Workload.RestartSTS:output_type -> clusterresources.CommonResp - 31, // 192: clusterresources.Workload.GetSTSHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 193: clusterresources.Workload.GetSTSRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 194: clusterresources.Workload.RolloutSTSRevision:output_type -> clusterresources.CommonResp - 30, // 195: clusterresources.Workload.ScaleSTS:output_type -> clusterresources.CommonResp - 30, // 196: clusterresources.Workload.RescheduleSTSPo:output_type -> clusterresources.CommonResp - 30, // 197: clusterresources.Workload.DeleteSTS:output_type -> clusterresources.CommonResp - 30, // 198: clusterresources.Workload.ListCJ:output_type -> clusterresources.CommonResp - 30, // 199: clusterresources.Workload.GetCJ:output_type -> clusterresources.CommonResp - 30, // 200: clusterresources.Workload.CreateCJ:output_type -> clusterresources.CommonResp - 30, // 201: clusterresources.Workload.UpdateCJ:output_type -> clusterresources.CommonResp - 30, // 202: clusterresources.Workload.DeleteCJ:output_type -> clusterresources.CommonResp - 30, // 203: clusterresources.Workload.ListJob:output_type -> clusterresources.CommonResp - 30, // 204: clusterresources.Workload.GetJob:output_type -> clusterresources.CommonResp - 30, // 205: clusterresources.Workload.CreateJob:output_type -> clusterresources.CommonResp - 30, // 206: clusterresources.Workload.UpdateJob:output_type -> clusterresources.CommonResp - 30, // 207: clusterresources.Workload.DeleteJob:output_type -> clusterresources.CommonResp - 30, // 208: clusterresources.Workload.ListPo:output_type -> clusterresources.CommonResp - 31, // 209: clusterresources.Workload.ListPoByNode:output_type -> clusterresources.CommonListResp - 30, // 210: clusterresources.Workload.GetPo:output_type -> clusterresources.CommonResp - 30, // 211: clusterresources.Workload.CreatePo:output_type -> clusterresources.CommonResp - 30, // 212: clusterresources.Workload.UpdatePo:output_type -> clusterresources.CommonResp - 30, // 213: clusterresources.Workload.DeletePo:output_type -> clusterresources.CommonResp - 30, // 214: clusterresources.Workload.ListPoPVC:output_type -> clusterresources.CommonResp - 30, // 215: clusterresources.Workload.ListPoCM:output_type -> clusterresources.CommonResp - 30, // 216: clusterresources.Workload.ListPoSecret:output_type -> clusterresources.CommonResp - 30, // 217: clusterresources.Workload.ReschedulePo:output_type -> clusterresources.CommonResp - 31, // 218: clusterresources.Workload.ListContainer:output_type -> clusterresources.CommonListResp - 30, // 219: clusterresources.Workload.GetContainer:output_type -> clusterresources.CommonResp - 31, // 220: clusterresources.Workload.GetContainerEnvInfo:output_type -> clusterresources.CommonListResp - 30, // 221: clusterresources.Network.ListIng:output_type -> clusterresources.CommonResp - 30, // 222: clusterresources.Network.GetIng:output_type -> clusterresources.CommonResp - 30, // 223: clusterresources.Network.CreateIng:output_type -> clusterresources.CommonResp - 30, // 224: clusterresources.Network.UpdateIng:output_type -> clusterresources.CommonResp - 30, // 225: clusterresources.Network.DeleteIng:output_type -> clusterresources.CommonResp - 30, // 226: clusterresources.Network.ListSVC:output_type -> clusterresources.CommonResp - 30, // 227: clusterresources.Network.GetSVC:output_type -> clusterresources.CommonResp - 30, // 228: clusterresources.Network.CreateSVC:output_type -> clusterresources.CommonResp - 30, // 229: clusterresources.Network.UpdateSVC:output_type -> clusterresources.CommonResp - 30, // 230: clusterresources.Network.DeleteSVC:output_type -> clusterresources.CommonResp - 30, // 231: clusterresources.Network.ListEP:output_type -> clusterresources.CommonResp - 30, // 232: clusterresources.Network.GetEP:output_type -> clusterresources.CommonResp - 30, // 233: clusterresources.Network.GetEPStatus:output_type -> clusterresources.CommonResp - 30, // 234: clusterresources.Network.CreateEP:output_type -> clusterresources.CommonResp - 30, // 235: clusterresources.Network.UpdateEP:output_type -> clusterresources.CommonResp - 30, // 236: clusterresources.Network.DeleteEP:output_type -> clusterresources.CommonResp - 30, // 237: clusterresources.Config.ListCM:output_type -> clusterresources.CommonResp - 30, // 238: clusterresources.Config.GetCM:output_type -> clusterresources.CommonResp - 30, // 239: clusterresources.Config.CreateCM:output_type -> clusterresources.CommonResp - 30, // 240: clusterresources.Config.UpdateCM:output_type -> clusterresources.CommonResp - 30, // 241: clusterresources.Config.DeleteCM:output_type -> clusterresources.CommonResp - 30, // 242: clusterresources.Config.ListSecret:output_type -> clusterresources.CommonResp - 30, // 243: clusterresources.Config.GetSecret:output_type -> clusterresources.CommonResp - 30, // 244: clusterresources.Config.CreateSecret:output_type -> clusterresources.CommonResp - 30, // 245: clusterresources.Config.UpdateSecret:output_type -> clusterresources.CommonResp - 30, // 246: clusterresources.Config.DeleteSecret:output_type -> clusterresources.CommonResp - 30, // 247: clusterresources.Storage.ListPV:output_type -> clusterresources.CommonResp - 30, // 248: clusterresources.Storage.GetPV:output_type -> clusterresources.CommonResp - 30, // 249: clusterresources.Storage.CreatePV:output_type -> clusterresources.CommonResp - 30, // 250: clusterresources.Storage.UpdatePV:output_type -> clusterresources.CommonResp - 30, // 251: clusterresources.Storage.DeletePV:output_type -> clusterresources.CommonResp - 30, // 252: clusterresources.Storage.ListPVC:output_type -> clusterresources.CommonResp - 30, // 253: clusterresources.Storage.GetPVC:output_type -> clusterresources.CommonResp - 30, // 254: clusterresources.Storage.GetPVCMountInfo:output_type -> clusterresources.CommonResp - 30, // 255: clusterresources.Storage.CreatePVC:output_type -> clusterresources.CommonResp - 30, // 256: clusterresources.Storage.UpdatePVC:output_type -> clusterresources.CommonResp - 30, // 257: clusterresources.Storage.DeletePVC:output_type -> clusterresources.CommonResp - 30, // 258: clusterresources.Storage.ListSC:output_type -> clusterresources.CommonResp - 30, // 259: clusterresources.Storage.GetSC:output_type -> clusterresources.CommonResp - 30, // 260: clusterresources.Storage.CreateSC:output_type -> clusterresources.CommonResp - 30, // 261: clusterresources.Storage.UpdateSC:output_type -> clusterresources.CommonResp - 30, // 262: clusterresources.Storage.DeleteSC:output_type -> clusterresources.CommonResp - 30, // 263: clusterresources.RBAC.ListSA:output_type -> clusterresources.CommonResp - 30, // 264: clusterresources.RBAC.GetSA:output_type -> clusterresources.CommonResp - 30, // 265: clusterresources.RBAC.CreateSA:output_type -> clusterresources.CommonResp - 30, // 266: clusterresources.RBAC.UpdateSA:output_type -> clusterresources.CommonResp - 30, // 267: clusterresources.RBAC.DeleteSA:output_type -> clusterresources.CommonResp - 30, // 268: clusterresources.HPA.ListHPA:output_type -> clusterresources.CommonResp - 30, // 269: clusterresources.HPA.GetHPA:output_type -> clusterresources.CommonResp - 30, // 270: clusterresources.HPA.CreateHPA:output_type -> clusterresources.CommonResp - 30, // 271: clusterresources.HPA.UpdateHPA:output_type -> clusterresources.CommonResp - 30, // 272: clusterresources.HPA.DeleteHPA:output_type -> clusterresources.CommonResp - 30, // 273: clusterresources.CustomRes.ListCRD:output_type -> clusterresources.CommonResp - 30, // 274: clusterresources.CustomRes.GetCRD:output_type -> clusterresources.CommonResp - 30, // 275: clusterresources.CustomRes.ListCObj:output_type -> clusterresources.CommonResp - 30, // 276: clusterresources.CustomRes.GetCObj:output_type -> clusterresources.CommonResp - 30, // 277: clusterresources.CustomRes.CreateCObj:output_type -> clusterresources.CommonResp - 30, // 278: clusterresources.CustomRes.UpdateCObj:output_type -> clusterresources.CommonResp - 30, // 279: clusterresources.CustomRes.ScaleCObj:output_type -> clusterresources.CommonResp - 30, // 280: clusterresources.CustomRes.DeleteCObj:output_type -> clusterresources.CommonResp - 30, // 281: clusterresources.CustomRes.RescheduleCObjPo:output_type -> clusterresources.CommonResp - 30, // 282: clusterresources.Resource.GetK8SResTemplate:output_type -> clusterresources.CommonResp - 33, // 283: clusterresources.Resource.Subscribe:output_type -> clusterresources.SubscribeResp - 30, // 284: clusterresources.Resource.InvalidateDiscoveryCache:output_type -> clusterresources.CommonResp - 30, // 285: clusterresources.Resource.FormDataRenderPreview:output_type -> clusterresources.CommonResp - 30, // 286: clusterresources.Resource.GetResFormSchema:output_type -> clusterresources.CommonResp - 30, // 287: clusterresources.Resource.GetFormSupportedAPIVersions:output_type -> clusterresources.CommonResp - 30, // 288: clusterresources.Resource.GetResSelectItems:output_type -> clusterresources.CommonResp - 31, // 289: clusterresources.ViewConfig.ListViewConfigs:output_type -> clusterresources.CommonListResp - 30, // 290: clusterresources.ViewConfig.GetViewConfig:output_type -> clusterresources.CommonResp - 30, // 291: clusterresources.ViewConfig.CreateViewConfig:output_type -> clusterresources.CommonResp - 30, // 292: clusterresources.ViewConfig.UpdateViewConfig:output_type -> clusterresources.CommonResp - 30, // 293: clusterresources.ViewConfig.RenameViewConfig:output_type -> clusterresources.CommonResp - 30, // 294: clusterresources.ViewConfig.DeleteViewConfig:output_type -> clusterresources.CommonResp - 30, // 295: clusterresources.MultiCluster.FetchMultiClusterResource:output_type -> clusterresources.CommonResp - 30, // 296: clusterresources.MultiCluster.FetchMultiClusterCustomResource:output_type -> clusterresources.CommonResp - 30, // 297: clusterresources.MultiCluster.MultiClusterResourceCount:output_type -> clusterresources.CommonResp - 159, // [159:298] is the sub-list for method output_type - 20, // [20:159] is the sub-list for method input_type + 25, // 138: clusterresources.CustomRes.GetCObjHistoryRevision:input_type -> clusterresources.CObjHistoryReq + 26, // 139: clusterresources.CustomRes.RestartCObj:input_type -> clusterresources.CObjRestartReq + 27, // 140: clusterresources.CustomRes.RolloutCObj:input_type -> clusterresources.CObjRolloutReq + 28, // 141: clusterresources.CustomRes.CreateCObj:input_type -> clusterresources.CObjCreateReq + 29, // 142: clusterresources.CustomRes.UpdateCObj:input_type -> clusterresources.CObjUpdateReq + 30, // 143: clusterresources.CustomRes.ScaleCObj:input_type -> clusterresources.CObjScaleReq + 31, // 144: clusterresources.CustomRes.DeleteCObj:input_type -> clusterresources.CObjDeleteReq + 32, // 145: clusterresources.CustomRes.RescheduleCObjPo:input_type -> clusterresources.CObjBatchRescheduleReq + 22, // 146: clusterresources.Resource.GetK8SResTemplate:input_type -> clusterresources.GetK8SResTemplateReq + 35, // 147: clusterresources.Resource.Subscribe:input_type -> clusterresources.SubscribeReq + 37, // 148: clusterresources.Resource.InvalidateDiscoveryCache:input_type -> clusterresources.InvalidateDiscoveryCacheReq + 38, // 149: clusterresources.Resource.FormDataRenderPreview:input_type -> clusterresources.FormRenderPreviewReq + 39, // 150: clusterresources.Resource.GetResFormSchema:input_type -> clusterresources.GetResFormSchemaReq + 40, // 151: clusterresources.Resource.GetFormSupportedAPIVersions:input_type -> clusterresources.GetFormSupportedApiVersionsReq + 41, // 152: clusterresources.Resource.GetResSelectItems:input_type -> clusterresources.GetResSelectItemsReq + 42, // 153: clusterresources.ViewConfig.ListViewConfigs:input_type -> clusterresources.ListViewConfigsReq + 43, // 154: clusterresources.ViewConfig.GetViewConfig:input_type -> clusterresources.GetViewConfigReq + 45, // 155: clusterresources.ViewConfig.CreateViewConfig:input_type -> clusterresources.CreateViewConfigReq + 46, // 156: clusterresources.ViewConfig.UpdateViewConfig:input_type -> clusterresources.UpdateViewConfigReq + 47, // 157: clusterresources.ViewConfig.RenameViewConfig:input_type -> clusterresources.RenameViewConfigReq + 48, // 158: clusterresources.ViewConfig.DeleteViewConfig:input_type -> clusterresources.DeleteViewConfigReq + 51, // 159: clusterresources.MultiCluster.FetchMultiClusterResource:input_type -> clusterresources.FetchMultiClusterResourceReq + 52, // 160: clusterresources.MultiCluster.FetchMultiClusterCustomResource:input_type -> clusterresources.FetchMultiClusterCustomResourceReq + 53, // 161: clusterresources.MultiCluster.MultiClusterResourceCount:input_type -> clusterresources.MultiClusterResourceCountReq + 1, // 162: clusterresources.Basic.Echo:output_type -> clusterresources.EchoResp + 3, // 163: clusterresources.Basic.Ping:output_type -> clusterresources.PingResp + 5, // 164: clusterresources.Basic.Healthz:output_type -> clusterresources.HealthzResp + 7, // 165: clusterresources.Basic.Version:output_type -> clusterresources.VersionResp + 33, // 166: clusterresources.Node.ListNode:output_type -> clusterresources.CommonResp + 33, // 167: clusterresources.Namespace.ListNS:output_type -> clusterresources.CommonResp + 33, // 168: clusterresources.Workload.ListDeploy:output_type -> clusterresources.CommonResp + 33, // 169: clusterresources.Workload.GetDeploy:output_type -> clusterresources.CommonResp + 33, // 170: clusterresources.Workload.CreateDeploy:output_type -> clusterresources.CommonResp + 33, // 171: clusterresources.Workload.UpdateDeploy:output_type -> clusterresources.CommonResp + 33, // 172: clusterresources.Workload.RestartDeploy:output_type -> clusterresources.CommonResp + 33, // 173: clusterresources.Workload.PauseOrResumeDeploy:output_type -> clusterresources.CommonResp + 33, // 174: clusterresources.Workload.ScaleDeploy:output_type -> clusterresources.CommonResp + 33, // 175: clusterresources.Workload.RescheduleDeployPo:output_type -> clusterresources.CommonResp + 33, // 176: clusterresources.Workload.DeleteDeploy:output_type -> clusterresources.CommonResp + 34, // 177: clusterresources.Workload.GetDeployHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 178: clusterresources.Workload.GetDeployRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 179: clusterresources.Workload.RolloutDeployRevision:output_type -> clusterresources.CommonResp + 33, // 180: clusterresources.Workload.ListRS:output_type -> clusterresources.CommonResp + 33, // 181: clusterresources.Workload.ListDS:output_type -> clusterresources.CommonResp + 33, // 182: clusterresources.Workload.GetDS:output_type -> clusterresources.CommonResp + 33, // 183: clusterresources.Workload.CreateDS:output_type -> clusterresources.CommonResp + 33, // 184: clusterresources.Workload.UpdateDS:output_type -> clusterresources.CommonResp + 33, // 185: clusterresources.Workload.RestartDS:output_type -> clusterresources.CommonResp + 34, // 186: clusterresources.Workload.GetDSHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 187: clusterresources.Workload.GetDSRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 188: clusterresources.Workload.RolloutDSRevision:output_type -> clusterresources.CommonResp + 33, // 189: clusterresources.Workload.DeleteDS:output_type -> clusterresources.CommonResp + 33, // 190: clusterresources.Workload.ListSTS:output_type -> clusterresources.CommonResp + 33, // 191: clusterresources.Workload.GetSTS:output_type -> clusterresources.CommonResp + 33, // 192: clusterresources.Workload.CreateSTS:output_type -> clusterresources.CommonResp + 33, // 193: clusterresources.Workload.UpdateSTS:output_type -> clusterresources.CommonResp + 33, // 194: clusterresources.Workload.RestartSTS:output_type -> clusterresources.CommonResp + 34, // 195: clusterresources.Workload.GetSTSHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 196: clusterresources.Workload.GetSTSRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 197: clusterresources.Workload.RolloutSTSRevision:output_type -> clusterresources.CommonResp + 33, // 198: clusterresources.Workload.ScaleSTS:output_type -> clusterresources.CommonResp + 33, // 199: clusterresources.Workload.RescheduleSTSPo:output_type -> clusterresources.CommonResp + 33, // 200: clusterresources.Workload.DeleteSTS:output_type -> clusterresources.CommonResp + 33, // 201: clusterresources.Workload.ListCJ:output_type -> clusterresources.CommonResp + 33, // 202: clusterresources.Workload.GetCJ:output_type -> clusterresources.CommonResp + 33, // 203: clusterresources.Workload.CreateCJ:output_type -> clusterresources.CommonResp + 33, // 204: clusterresources.Workload.UpdateCJ:output_type -> clusterresources.CommonResp + 33, // 205: clusterresources.Workload.DeleteCJ:output_type -> clusterresources.CommonResp + 33, // 206: clusterresources.Workload.ListJob:output_type -> clusterresources.CommonResp + 33, // 207: clusterresources.Workload.GetJob:output_type -> clusterresources.CommonResp + 33, // 208: clusterresources.Workload.CreateJob:output_type -> clusterresources.CommonResp + 33, // 209: clusterresources.Workload.UpdateJob:output_type -> clusterresources.CommonResp + 33, // 210: clusterresources.Workload.DeleteJob:output_type -> clusterresources.CommonResp + 33, // 211: clusterresources.Workload.ListPo:output_type -> clusterresources.CommonResp + 34, // 212: clusterresources.Workload.ListPoByNode:output_type -> clusterresources.CommonListResp + 33, // 213: clusterresources.Workload.GetPo:output_type -> clusterresources.CommonResp + 33, // 214: clusterresources.Workload.CreatePo:output_type -> clusterresources.CommonResp + 33, // 215: clusterresources.Workload.UpdatePo:output_type -> clusterresources.CommonResp + 33, // 216: clusterresources.Workload.DeletePo:output_type -> clusterresources.CommonResp + 33, // 217: clusterresources.Workload.ListPoPVC:output_type -> clusterresources.CommonResp + 33, // 218: clusterresources.Workload.ListPoCM:output_type -> clusterresources.CommonResp + 33, // 219: clusterresources.Workload.ListPoSecret:output_type -> clusterresources.CommonResp + 33, // 220: clusterresources.Workload.ReschedulePo:output_type -> clusterresources.CommonResp + 34, // 221: clusterresources.Workload.ListContainer:output_type -> clusterresources.CommonListResp + 33, // 222: clusterresources.Workload.GetContainer:output_type -> clusterresources.CommonResp + 34, // 223: clusterresources.Workload.GetContainerEnvInfo:output_type -> clusterresources.CommonListResp + 33, // 224: clusterresources.Network.ListIng:output_type -> clusterresources.CommonResp + 33, // 225: clusterresources.Network.GetIng:output_type -> clusterresources.CommonResp + 33, // 226: clusterresources.Network.CreateIng:output_type -> clusterresources.CommonResp + 33, // 227: clusterresources.Network.UpdateIng:output_type -> clusterresources.CommonResp + 33, // 228: clusterresources.Network.DeleteIng:output_type -> clusterresources.CommonResp + 33, // 229: clusterresources.Network.ListSVC:output_type -> clusterresources.CommonResp + 33, // 230: clusterresources.Network.GetSVC:output_type -> clusterresources.CommonResp + 33, // 231: clusterresources.Network.CreateSVC:output_type -> clusterresources.CommonResp + 33, // 232: clusterresources.Network.UpdateSVC:output_type -> clusterresources.CommonResp + 33, // 233: clusterresources.Network.DeleteSVC:output_type -> clusterresources.CommonResp + 33, // 234: clusterresources.Network.ListEP:output_type -> clusterresources.CommonResp + 33, // 235: clusterresources.Network.GetEP:output_type -> clusterresources.CommonResp + 33, // 236: clusterresources.Network.GetEPStatus:output_type -> clusterresources.CommonResp + 33, // 237: clusterresources.Network.CreateEP:output_type -> clusterresources.CommonResp + 33, // 238: clusterresources.Network.UpdateEP:output_type -> clusterresources.CommonResp + 33, // 239: clusterresources.Network.DeleteEP:output_type -> clusterresources.CommonResp + 33, // 240: clusterresources.Config.ListCM:output_type -> clusterresources.CommonResp + 33, // 241: clusterresources.Config.GetCM:output_type -> clusterresources.CommonResp + 33, // 242: clusterresources.Config.CreateCM:output_type -> clusterresources.CommonResp + 33, // 243: clusterresources.Config.UpdateCM:output_type -> clusterresources.CommonResp + 33, // 244: clusterresources.Config.DeleteCM:output_type -> clusterresources.CommonResp + 33, // 245: clusterresources.Config.ListSecret:output_type -> clusterresources.CommonResp + 33, // 246: clusterresources.Config.GetSecret:output_type -> clusterresources.CommonResp + 33, // 247: clusterresources.Config.CreateSecret:output_type -> clusterresources.CommonResp + 33, // 248: clusterresources.Config.UpdateSecret:output_type -> clusterresources.CommonResp + 33, // 249: clusterresources.Config.DeleteSecret:output_type -> clusterresources.CommonResp + 33, // 250: clusterresources.Storage.ListPV:output_type -> clusterresources.CommonResp + 33, // 251: clusterresources.Storage.GetPV:output_type -> clusterresources.CommonResp + 33, // 252: clusterresources.Storage.CreatePV:output_type -> clusterresources.CommonResp + 33, // 253: clusterresources.Storage.UpdatePV:output_type -> clusterresources.CommonResp + 33, // 254: clusterresources.Storage.DeletePV:output_type -> clusterresources.CommonResp + 33, // 255: clusterresources.Storage.ListPVC:output_type -> clusterresources.CommonResp + 33, // 256: clusterresources.Storage.GetPVC:output_type -> clusterresources.CommonResp + 33, // 257: clusterresources.Storage.GetPVCMountInfo:output_type -> clusterresources.CommonResp + 33, // 258: clusterresources.Storage.CreatePVC:output_type -> clusterresources.CommonResp + 33, // 259: clusterresources.Storage.UpdatePVC:output_type -> clusterresources.CommonResp + 33, // 260: clusterresources.Storage.DeletePVC:output_type -> clusterresources.CommonResp + 33, // 261: clusterresources.Storage.ListSC:output_type -> clusterresources.CommonResp + 33, // 262: clusterresources.Storage.GetSC:output_type -> clusterresources.CommonResp + 33, // 263: clusterresources.Storage.CreateSC:output_type -> clusterresources.CommonResp + 33, // 264: clusterresources.Storage.UpdateSC:output_type -> clusterresources.CommonResp + 33, // 265: clusterresources.Storage.DeleteSC:output_type -> clusterresources.CommonResp + 33, // 266: clusterresources.RBAC.ListSA:output_type -> clusterresources.CommonResp + 33, // 267: clusterresources.RBAC.GetSA:output_type -> clusterresources.CommonResp + 33, // 268: clusterresources.RBAC.CreateSA:output_type -> clusterresources.CommonResp + 33, // 269: clusterresources.RBAC.UpdateSA:output_type -> clusterresources.CommonResp + 33, // 270: clusterresources.RBAC.DeleteSA:output_type -> clusterresources.CommonResp + 33, // 271: clusterresources.HPA.ListHPA:output_type -> clusterresources.CommonResp + 33, // 272: clusterresources.HPA.GetHPA:output_type -> clusterresources.CommonResp + 33, // 273: clusterresources.HPA.CreateHPA:output_type -> clusterresources.CommonResp + 33, // 274: clusterresources.HPA.UpdateHPA:output_type -> clusterresources.CommonResp + 33, // 275: clusterresources.HPA.DeleteHPA:output_type -> clusterresources.CommonResp + 33, // 276: clusterresources.CustomRes.ListCRD:output_type -> clusterresources.CommonResp + 33, // 277: clusterresources.CustomRes.GetCRD:output_type -> clusterresources.CommonResp + 33, // 278: clusterresources.CustomRes.ListCObj:output_type -> clusterresources.CommonResp + 33, // 279: clusterresources.CustomRes.GetCObj:output_type -> clusterresources.CommonResp + 34, // 280: clusterresources.CustomRes.GetCObjHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 281: clusterresources.CustomRes.RestartCObj:output_type -> clusterresources.CommonResp + 33, // 282: clusterresources.CustomRes.RolloutCObj:output_type -> clusterresources.CommonResp + 33, // 283: clusterresources.CustomRes.CreateCObj:output_type -> clusterresources.CommonResp + 33, // 284: clusterresources.CustomRes.UpdateCObj:output_type -> clusterresources.CommonResp + 33, // 285: clusterresources.CustomRes.ScaleCObj:output_type -> clusterresources.CommonResp + 33, // 286: clusterresources.CustomRes.DeleteCObj:output_type -> clusterresources.CommonResp + 33, // 287: clusterresources.CustomRes.RescheduleCObjPo:output_type -> clusterresources.CommonResp + 33, // 288: clusterresources.Resource.GetK8SResTemplate:output_type -> clusterresources.CommonResp + 36, // 289: clusterresources.Resource.Subscribe:output_type -> clusterresources.SubscribeResp + 33, // 290: clusterresources.Resource.InvalidateDiscoveryCache:output_type -> clusterresources.CommonResp + 33, // 291: clusterresources.Resource.FormDataRenderPreview:output_type -> clusterresources.CommonResp + 33, // 292: clusterresources.Resource.GetResFormSchema:output_type -> clusterresources.CommonResp + 33, // 293: clusterresources.Resource.GetFormSupportedAPIVersions:output_type -> clusterresources.CommonResp + 33, // 294: clusterresources.Resource.GetResSelectItems:output_type -> clusterresources.CommonResp + 34, // 295: clusterresources.ViewConfig.ListViewConfigs:output_type -> clusterresources.CommonListResp + 33, // 296: clusterresources.ViewConfig.GetViewConfig:output_type -> clusterresources.CommonResp + 33, // 297: clusterresources.ViewConfig.CreateViewConfig:output_type -> clusterresources.CommonResp + 33, // 298: clusterresources.ViewConfig.UpdateViewConfig:output_type -> clusterresources.CommonResp + 33, // 299: clusterresources.ViewConfig.RenameViewConfig:output_type -> clusterresources.CommonResp + 33, // 300: clusterresources.ViewConfig.DeleteViewConfig:output_type -> clusterresources.CommonResp + 33, // 301: clusterresources.MultiCluster.FetchMultiClusterResource:output_type -> clusterresources.CommonResp + 33, // 302: clusterresources.MultiCluster.FetchMultiClusterCustomResource:output_type -> clusterresources.CommonResp + 33, // 303: clusterresources.MultiCluster.MultiClusterResourceCount:output_type -> clusterresources.CommonResp + 162, // [162:304] is the sub-list for method output_type + 20, // [20:162] is the sub-list for method input_type 20, // [20:20] is the sub-list for extension type_name 20, // [20:20] is the sub-list for extension extendee 0, // [0:20] is the sub-list for field type_name @@ -7757,7 +8135,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjCreateReq); i { + switch v := v.(*CObjHistoryReq); i { case 0: return &v.state case 1: @@ -7769,7 +8147,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjUpdateReq); i { + switch v := v.(*CObjRestartReq); i { case 0: return &v.state case 1: @@ -7781,7 +8159,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjScaleReq); i { + switch v := v.(*CObjRolloutReq); i { case 0: return &v.state case 1: @@ -7793,7 +8171,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjDeleteReq); i { + switch v := v.(*CObjCreateReq); i { case 0: return &v.state case 1: @@ -7805,7 +8183,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjBatchRescheduleReq); i { + switch v := v.(*CObjUpdateReq); i { case 0: return &v.state case 1: @@ -7817,7 +8195,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { + switch v := v.(*CObjScaleReq); i { case 0: return &v.state case 1: @@ -7829,7 +8207,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonListResp); i { + switch v := v.(*CObjDeleteReq); i { case 0: return &v.state case 1: @@ -7841,7 +8219,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeReq); i { + switch v := v.(*CObjBatchRescheduleReq); i { case 0: return &v.state case 1: @@ -7853,7 +8231,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeResp); i { + switch v := v.(*CommonResp); i { case 0: return &v.state case 1: @@ -7865,7 +8243,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvalidateDiscoveryCacheReq); i { + switch v := v.(*CommonListResp); i { case 0: return &v.state case 1: @@ -7877,7 +8255,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FormRenderPreviewReq); i { + switch v := v.(*SubscribeReq); i { case 0: return &v.state case 1: @@ -7889,7 +8267,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResFormSchemaReq); i { + switch v := v.(*SubscribeResp); i { case 0: return &v.state case 1: @@ -7901,7 +8279,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFormSupportedApiVersionsReq); i { + switch v := v.(*InvalidateDiscoveryCacheReq); i { case 0: return &v.state case 1: @@ -7913,7 +8291,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResSelectItemsReq); i { + switch v := v.(*FormRenderPreviewReq); i { case 0: return &v.state case 1: @@ -7925,7 +8303,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListViewConfigsReq); i { + switch v := v.(*GetResFormSchemaReq); i { case 0: return &v.state case 1: @@ -7937,7 +8315,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetViewConfigReq); i { + switch v := v.(*GetFormSupportedApiVersionsReq); i { case 0: return &v.state case 1: @@ -7949,7 +8327,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewFilter); i { + switch v := v.(*GetResSelectItemsReq); i { case 0: return &v.state case 1: @@ -7961,7 +8339,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateViewConfigReq); i { + switch v := v.(*ListViewConfigsReq); i { case 0: return &v.state case 1: @@ -7973,7 +8351,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateViewConfigReq); i { + switch v := v.(*GetViewConfigReq); i { case 0: return &v.state case 1: @@ -7985,7 +8363,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RenameViewConfigReq); i { + switch v := v.(*ViewFilter); i { case 0: return &v.state case 1: @@ -7997,7 +8375,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteViewConfigReq); i { + switch v := v.(*CreateViewConfigReq); i { case 0: return &v.state case 1: @@ -8009,7 +8387,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterNamespaces); i { + switch v := v.(*UpdateViewConfigReq); i { case 0: return &v.state case 1: @@ -8021,7 +8399,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelSelector); i { + switch v := v.(*RenameViewConfigReq); i { case 0: return &v.state case 1: @@ -8033,7 +8411,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchMultiClusterResourceReq); i { + switch v := v.(*DeleteViewConfigReq); i { case 0: return &v.state case 1: @@ -8045,7 +8423,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchMultiClusterCustomResourceReq); i { + switch v := v.(*ClusterNamespaces); i { case 0: return &v.state case 1: @@ -8057,6 +8435,42 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LabelSelector); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchMultiClusterResourceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchMultiClusterCustomResourceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiClusterResourceCountReq); i { case 0: return &v.state @@ -8075,7 +8489,7 @@ func file_cluster_resources_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cluster_resources_proto_rawDesc, NumEnums: 0, - NumMessages: 52, + NumMessages: 55, NumExtensions: 0, NumServices: 13, }, @@ -8088,5535 +8502,3 @@ func file_cluster_resources_proto_init() { file_cluster_resources_proto_goTypes = nil file_cluster_resources_proto_depIdxs = nil } - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// BasicClient is the client API for Basic service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type BasicClient interface { - Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) - Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) - Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) - Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) -} - -type basicClient struct { - cc grpc.ClientConnInterface -} - -func NewBasicClient(cc grpc.ClientConnInterface) BasicClient { - return &basicClient{cc} -} - -func (c *basicClient) Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) { - out := new(EchoResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Echo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) { - out := new(PingResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Ping", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) { - out := new(HealthzResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Healthz", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) { - out := new(VersionResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Version", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// BasicServer is the server API for Basic service. -type BasicServer interface { - Echo(context.Context, *EchoReq) (*EchoResp, error) - Ping(context.Context, *PingReq) (*PingResp, error) - Healthz(context.Context, *HealthzReq) (*HealthzResp, error) - Version(context.Context, *VersionReq) (*VersionResp, error) -} - -// UnimplementedBasicServer can be embedded to have forward compatible implementations. -type UnimplementedBasicServer struct { -} - -func (*UnimplementedBasicServer) Echo(context.Context, *EchoReq) (*EchoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") -} -func (*UnimplementedBasicServer) Ping(context.Context, *PingReq) (*PingResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") -} -func (*UnimplementedBasicServer) Healthz(context.Context, *HealthzReq) (*HealthzResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") -} -func (*UnimplementedBasicServer) Version(context.Context, *VersionReq) (*VersionResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") -} - -func RegisterBasicServer(s *grpc.Server, srv BasicServer) { - s.RegisterService(&_Basic_serviceDesc, srv) -} - -func _Basic_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EchoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Echo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Echo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Echo(ctx, req.(*EchoReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PingReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Ping(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Ping", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Ping(ctx, req.(*PingReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Healthz_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HealthzReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Healthz(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Healthz", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Healthz(ctx, req.(*HealthzReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(VersionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Version(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Version", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Version(ctx, req.(*VersionReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Basic_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Basic", - HandlerType: (*BasicServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Echo", - Handler: _Basic_Echo_Handler, - }, - { - MethodName: "Ping", - Handler: _Basic_Ping_Handler, - }, - { - MethodName: "Healthz", - Handler: _Basic_Healthz_Handler, - }, - { - MethodName: "Version", - Handler: _Basic_Version_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NodeClient is the client API for Node service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NodeClient interface { - ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type nodeClient struct { - cc grpc.ClientConnInterface -} - -func NewNodeClient(cc grpc.ClientConnInterface) NodeClient { - return &nodeClient{cc} -} - -func (c *nodeClient) ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Node/ListNode", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NodeServer is the server API for Node service. -type NodeServer interface { - ListNode(context.Context, *ResListReq) (*CommonResp, error) -} - -// UnimplementedNodeServer can be embedded to have forward compatible implementations. -type UnimplementedNodeServer struct { -} - -func (*UnimplementedNodeServer) ListNode(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListNode not implemented") -} - -func RegisterNodeServer(s *grpc.Server, srv NodeServer) { - s.RegisterService(&_Node_serviceDesc, srv) -} - -func _Node_ListNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NodeServer).ListNode(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Node/ListNode", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NodeServer).ListNode(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Node_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Node", - HandlerType: (*NodeServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListNode", - Handler: _Node_ListNode_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NamespaceClient is the client API for Namespace service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NamespaceClient interface { - ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type namespaceClient struct { - cc grpc.ClientConnInterface -} - -func NewNamespaceClient(cc grpc.ClientConnInterface) NamespaceClient { - return &namespaceClient{cc} -} - -func (c *namespaceClient) ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Namespace/ListNS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NamespaceServer is the server API for Namespace service. -type NamespaceServer interface { - ListNS(context.Context, *ResListReq) (*CommonResp, error) -} - -// UnimplementedNamespaceServer can be embedded to have forward compatible implementations. -type UnimplementedNamespaceServer struct { -} - -func (*UnimplementedNamespaceServer) ListNS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListNS not implemented") -} - -func RegisterNamespaceServer(s *grpc.Server, srv NamespaceServer) { - s.RegisterService(&_Namespace_serviceDesc, srv) -} - -func _Namespace_ListNS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NamespaceServer).ListNS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Namespace/ListNS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NamespaceServer).ListNS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Namespace_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Namespace", - HandlerType: (*NamespaceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListNS", - Handler: _Namespace_ListNS_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// WorkloadClient is the client API for Workload service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type WorkloadClient interface { - ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) -} - -type workloadClient struct { - cc grpc.ClientConnInterface -} - -func NewWorkloadClient(cc grpc.ClientConnInterface) WorkloadClient { - return &workloadClient{cc} -} - -func (c *workloadClient) ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/PauseOrResumeDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleDeployPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDeployRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListRS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDSRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutSTSRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleSTSPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoByNode", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreatePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdatePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeletePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ReschedulePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListContainer", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainer", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainerEnvInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// WorkloadServer is the server API for Workload service. -type WorkloadServer interface { - ListDeploy(context.Context, *ResListReq) (*CommonResp, error) - GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) - CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) - PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) - ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) - RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) - DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) - GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - ListRS(context.Context, *ResListReq) (*CommonResp, error) - ListDS(context.Context, *ResListReq) (*CommonResp, error) - GetDS(context.Context, *ResGetReq) (*CommonResp, error) - CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) - GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSTS(context.Context, *ResListReq) (*CommonResp, error) - GetSTS(context.Context, *ResGetReq) (*CommonResp, error) - CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) - GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) - RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) - DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) - ListCJ(context.Context, *ResListReq) (*CommonResp, error) - GetCJ(context.Context, *ResGetReq) (*CommonResp, error) - CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) - ListJob(context.Context, *ResListReq) (*CommonResp, error) - GetJob(context.Context, *ResGetReq) (*CommonResp, error) - CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPo(context.Context, *ResListReq) (*CommonResp, error) - ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) - GetPo(context.Context, *ResGetReq) (*CommonResp, error) - CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) - ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) - ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) - ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) - ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) - GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) - GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) -} - -// UnimplementedWorkloadServer can be embedded to have forward compatible implementations. -type UnimplementedWorkloadServer struct { -} - -func (*UnimplementedWorkloadServer) ListDeploy(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDeploy not implemented") -} -func (*UnimplementedWorkloadServer) GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeploy not implemented") -} -func (*UnimplementedWorkloadServer) CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateDeploy not implemented") -} -func (*UnimplementedWorkloadServer) UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateDeploy not implemented") -} -func (*UnimplementedWorkloadServer) RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartDeploy not implemented") -} -func (*UnimplementedWorkloadServer) PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method PauseOrResumeDeploy not implemented") -} -func (*UnimplementedWorkloadServer) ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleDeploy not implemented") -} -func (*UnimplementedWorkloadServer) RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleDeployPo not implemented") -} -func (*UnimplementedWorkloadServer) DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteDeploy not implemented") -} -func (*UnimplementedWorkloadServer) GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeployHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeployRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutDeployRevision not implemented") -} -func (*UnimplementedWorkloadServer) ListRS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListRS not implemented") -} -func (*UnimplementedWorkloadServer) ListDS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDS not implemented") -} -func (*UnimplementedWorkloadServer) GetDS(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDS not implemented") -} -func (*UnimplementedWorkloadServer) CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateDS not implemented") -} -func (*UnimplementedWorkloadServer) UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateDS not implemented") -} -func (*UnimplementedWorkloadServer) RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartDS not implemented") -} -func (*UnimplementedWorkloadServer) GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDSHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDSRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutDSRevision not implemented") -} -func (*UnimplementedWorkloadServer) DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteDS not implemented") -} -func (*UnimplementedWorkloadServer) ListSTS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSTS not implemented") -} -func (*UnimplementedWorkloadServer) GetSTS(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTS not implemented") -} -func (*UnimplementedWorkloadServer) CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSTS not implemented") -} -func (*UnimplementedWorkloadServer) UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSTS not implemented") -} -func (*UnimplementedWorkloadServer) RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartSTS not implemented") -} -func (*UnimplementedWorkloadServer) GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTSHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTSRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutSTSRevision not implemented") -} -func (*UnimplementedWorkloadServer) ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleSTS not implemented") -} -func (*UnimplementedWorkloadServer) RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleSTSPo not implemented") -} -func (*UnimplementedWorkloadServer) DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSTS not implemented") -} -func (*UnimplementedWorkloadServer) ListCJ(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCJ not implemented") -} -func (*UnimplementedWorkloadServer) GetCJ(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCJ not implemented") -} -func (*UnimplementedWorkloadServer) CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCJ not implemented") -} -func (*UnimplementedWorkloadServer) UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCJ not implemented") -} -func (*UnimplementedWorkloadServer) DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCJ not implemented") -} -func (*UnimplementedWorkloadServer) ListJob(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") -} -func (*UnimplementedWorkloadServer) GetJob(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") -} -func (*UnimplementedWorkloadServer) CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateJob not implemented") -} -func (*UnimplementedWorkloadServer) UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateJob not implemented") -} -func (*UnimplementedWorkloadServer) DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") -} -func (*UnimplementedWorkloadServer) ListPo(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPo not implemented") -} -func (*UnimplementedWorkloadServer) ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoByNode not implemented") -} -func (*UnimplementedWorkloadServer) GetPo(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPo not implemented") -} -func (*UnimplementedWorkloadServer) CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePo not implemented") -} -func (*UnimplementedWorkloadServer) UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePo not implemented") -} -func (*UnimplementedWorkloadServer) DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePo not implemented") -} -func (*UnimplementedWorkloadServer) ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoPVC not implemented") -} -func (*UnimplementedWorkloadServer) ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoCM not implemented") -} -func (*UnimplementedWorkloadServer) ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoSecret not implemented") -} -func (*UnimplementedWorkloadServer) ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ReschedulePo not implemented") -} -func (*UnimplementedWorkloadServer) ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListContainer not implemented") -} -func (*UnimplementedWorkloadServer) GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetContainer not implemented") -} -func (*UnimplementedWorkloadServer) GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetContainerEnvInfo not implemented") -} - -func RegisterWorkloadServer(s *grpc.Server, srv WorkloadServer) { - s.RegisterService(&_Workload_serviceDesc, srv) -} - -func _Workload_ListDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListDeploy(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeploy(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateDeploy(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateDeploy(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartDeploy(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_PauseOrResumeDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResPauseOrResumeReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/PauseOrResumeDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, req.(*ResPauseOrResumeReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ScaleDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ScaleDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ScaleDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ScaleDeploy(ctx, req.(*ResScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RescheduleDeployPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RescheduleDeployPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RescheduleDeployPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RescheduleDeployPo(ctx, req.(*ResBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteDeploy(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeployHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeployHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeployRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeployRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutDeployRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutDeployRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutDeployRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutDeployRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListRS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListRS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListRS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListRS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListDS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDS(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateDS(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateDS(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartDS(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDSHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDSHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDSHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDSRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDSRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDSRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutDSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutDSRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutDSRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutDSRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteDS(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListSTS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTS(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateSTS(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateSTS(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartSTS(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTSHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTSRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutSTSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutSTSRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutSTSRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutSTSRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ScaleSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ScaleSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ScaleSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ScaleSTS(ctx, req.(*ResScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RescheduleSTSPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RescheduleSTSPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RescheduleSTSPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RescheduleSTSPo(ctx, req.(*ResBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteSTS(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListCJ(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetCJ(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateCJ(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateCJ(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteCJ(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListJob(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetJob(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateJob(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateJob(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteJob(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPo(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoByNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListPoByNodeReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoByNode(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoByNode", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoByNode(ctx, req.(*ListPoByNodeReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetPo(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreatePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreatePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreatePo(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdatePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdatePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdatePo(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeletePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeletePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeletePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeletePo(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoPVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoCM(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoSecret(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ReschedulePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ReschedulePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ReschedulePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ReschedulePo(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListContainer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListContainer", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListContainer(ctx, req.(*ContainerListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetContainer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetContainer", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetContainer(ctx, req.(*ContainerGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetContainerEnvInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetContainerEnvInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetContainerEnvInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetContainerEnvInfo(ctx, req.(*ContainerGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Workload_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Workload", - HandlerType: (*WorkloadServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListDeploy", - Handler: _Workload_ListDeploy_Handler, - }, - { - MethodName: "GetDeploy", - Handler: _Workload_GetDeploy_Handler, - }, - { - MethodName: "CreateDeploy", - Handler: _Workload_CreateDeploy_Handler, - }, - { - MethodName: "UpdateDeploy", - Handler: _Workload_UpdateDeploy_Handler, - }, - { - MethodName: "RestartDeploy", - Handler: _Workload_RestartDeploy_Handler, - }, - { - MethodName: "PauseOrResumeDeploy", - Handler: _Workload_PauseOrResumeDeploy_Handler, - }, - { - MethodName: "ScaleDeploy", - Handler: _Workload_ScaleDeploy_Handler, - }, - { - MethodName: "RescheduleDeployPo", - Handler: _Workload_RescheduleDeployPo_Handler, - }, - { - MethodName: "DeleteDeploy", - Handler: _Workload_DeleteDeploy_Handler, - }, - { - MethodName: "GetDeployHistoryRevision", - Handler: _Workload_GetDeployHistoryRevision_Handler, - }, - { - MethodName: "GetDeployRevisionDiff", - Handler: _Workload_GetDeployRevisionDiff_Handler, - }, - { - MethodName: "RolloutDeployRevision", - Handler: _Workload_RolloutDeployRevision_Handler, - }, - { - MethodName: "ListRS", - Handler: _Workload_ListRS_Handler, - }, - { - MethodName: "ListDS", - Handler: _Workload_ListDS_Handler, - }, - { - MethodName: "GetDS", - Handler: _Workload_GetDS_Handler, - }, - { - MethodName: "CreateDS", - Handler: _Workload_CreateDS_Handler, - }, - { - MethodName: "UpdateDS", - Handler: _Workload_UpdateDS_Handler, - }, - { - MethodName: "RestartDS", - Handler: _Workload_RestartDS_Handler, - }, - { - MethodName: "GetDSHistoryRevision", - Handler: _Workload_GetDSHistoryRevision_Handler, - }, - { - MethodName: "GetDSRevisionDiff", - Handler: _Workload_GetDSRevisionDiff_Handler, - }, - { - MethodName: "RolloutDSRevision", - Handler: _Workload_RolloutDSRevision_Handler, - }, - { - MethodName: "DeleteDS", - Handler: _Workload_DeleteDS_Handler, - }, - { - MethodName: "ListSTS", - Handler: _Workload_ListSTS_Handler, - }, - { - MethodName: "GetSTS", - Handler: _Workload_GetSTS_Handler, - }, - { - MethodName: "CreateSTS", - Handler: _Workload_CreateSTS_Handler, - }, - { - MethodName: "UpdateSTS", - Handler: _Workload_UpdateSTS_Handler, - }, - { - MethodName: "RestartSTS", - Handler: _Workload_RestartSTS_Handler, - }, - { - MethodName: "GetSTSHistoryRevision", - Handler: _Workload_GetSTSHistoryRevision_Handler, - }, - { - MethodName: "GetSTSRevisionDiff", - Handler: _Workload_GetSTSRevisionDiff_Handler, - }, - { - MethodName: "RolloutSTSRevision", - Handler: _Workload_RolloutSTSRevision_Handler, - }, - { - MethodName: "ScaleSTS", - Handler: _Workload_ScaleSTS_Handler, - }, - { - MethodName: "RescheduleSTSPo", - Handler: _Workload_RescheduleSTSPo_Handler, - }, - { - MethodName: "DeleteSTS", - Handler: _Workload_DeleteSTS_Handler, - }, - { - MethodName: "ListCJ", - Handler: _Workload_ListCJ_Handler, - }, - { - MethodName: "GetCJ", - Handler: _Workload_GetCJ_Handler, - }, - { - MethodName: "CreateCJ", - Handler: _Workload_CreateCJ_Handler, - }, - { - MethodName: "UpdateCJ", - Handler: _Workload_UpdateCJ_Handler, - }, - { - MethodName: "DeleteCJ", - Handler: _Workload_DeleteCJ_Handler, - }, - { - MethodName: "ListJob", - Handler: _Workload_ListJob_Handler, - }, - { - MethodName: "GetJob", - Handler: _Workload_GetJob_Handler, - }, - { - MethodName: "CreateJob", - Handler: _Workload_CreateJob_Handler, - }, - { - MethodName: "UpdateJob", - Handler: _Workload_UpdateJob_Handler, - }, - { - MethodName: "DeleteJob", - Handler: _Workload_DeleteJob_Handler, - }, - { - MethodName: "ListPo", - Handler: _Workload_ListPo_Handler, - }, - { - MethodName: "ListPoByNode", - Handler: _Workload_ListPoByNode_Handler, - }, - { - MethodName: "GetPo", - Handler: _Workload_GetPo_Handler, - }, - { - MethodName: "CreatePo", - Handler: _Workload_CreatePo_Handler, - }, - { - MethodName: "UpdatePo", - Handler: _Workload_UpdatePo_Handler, - }, - { - MethodName: "DeletePo", - Handler: _Workload_DeletePo_Handler, - }, - { - MethodName: "ListPoPVC", - Handler: _Workload_ListPoPVC_Handler, - }, - { - MethodName: "ListPoCM", - Handler: _Workload_ListPoCM_Handler, - }, - { - MethodName: "ListPoSecret", - Handler: _Workload_ListPoSecret_Handler, - }, - { - MethodName: "ReschedulePo", - Handler: _Workload_ReschedulePo_Handler, - }, - { - MethodName: "ListContainer", - Handler: _Workload_ListContainer_Handler, - }, - { - MethodName: "GetContainer", - Handler: _Workload_GetContainer_Handler, - }, - { - MethodName: "GetContainerEnvInfo", - Handler: _Workload_GetContainerEnvInfo_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NetworkClient is the client API for Network service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NetworkClient interface { - ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type networkClient struct { - cc grpc.ClientConnInterface -} - -func NewNetworkClient(cc grpc.ClientConnInterface) NetworkClient { - return &networkClient{cc} -} - -func (c *networkClient) ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEPStatus", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NetworkServer is the server API for Network service. -type NetworkServer interface { - ListIng(context.Context, *ResListReq) (*CommonResp, error) - GetIng(context.Context, *ResGetReq) (*CommonResp, error) - CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSVC(context.Context, *ResListReq) (*CommonResp, error) - GetSVC(context.Context, *ResGetReq) (*CommonResp, error) - CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) - ListEP(context.Context, *ResListReq) (*CommonResp, error) - GetEP(context.Context, *ResGetReq) (*CommonResp, error) - GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) - CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedNetworkServer can be embedded to have forward compatible implementations. -type UnimplementedNetworkServer struct { -} - -func (*UnimplementedNetworkServer) ListIng(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListIng not implemented") -} -func (*UnimplementedNetworkServer) GetIng(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetIng not implemented") -} -func (*UnimplementedNetworkServer) CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateIng not implemented") -} -func (*UnimplementedNetworkServer) UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateIng not implemented") -} -func (*UnimplementedNetworkServer) DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteIng not implemented") -} -func (*UnimplementedNetworkServer) ListSVC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSVC not implemented") -} -func (*UnimplementedNetworkServer) GetSVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSVC not implemented") -} -func (*UnimplementedNetworkServer) CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSVC not implemented") -} -func (*UnimplementedNetworkServer) UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSVC not implemented") -} -func (*UnimplementedNetworkServer) DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSVC not implemented") -} -func (*UnimplementedNetworkServer) ListEP(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListEP not implemented") -} -func (*UnimplementedNetworkServer) GetEP(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetEP not implemented") -} -func (*UnimplementedNetworkServer) GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetEPStatus not implemented") -} -func (*UnimplementedNetworkServer) CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateEP not implemented") -} -func (*UnimplementedNetworkServer) UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateEP not implemented") -} -func (*UnimplementedNetworkServer) DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteEP not implemented") -} - -func RegisterNetworkServer(s *grpc.Server, srv NetworkServer) { - s.RegisterService(&_Network_serviceDesc, srv) -} - -func _Network_ListIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListIng(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetIng(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateIng(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateIng(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteIng(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_ListSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListSVC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetSVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateSVC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateSVC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteSVC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_ListEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListEP(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetEP(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetEPStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetEPStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetEPStatus", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetEPStatus(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateEP(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateEP(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteEP(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Network_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Network", - HandlerType: (*NetworkServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListIng", - Handler: _Network_ListIng_Handler, - }, - { - MethodName: "GetIng", - Handler: _Network_GetIng_Handler, - }, - { - MethodName: "CreateIng", - Handler: _Network_CreateIng_Handler, - }, - { - MethodName: "UpdateIng", - Handler: _Network_UpdateIng_Handler, - }, - { - MethodName: "DeleteIng", - Handler: _Network_DeleteIng_Handler, - }, - { - MethodName: "ListSVC", - Handler: _Network_ListSVC_Handler, - }, - { - MethodName: "GetSVC", - Handler: _Network_GetSVC_Handler, - }, - { - MethodName: "CreateSVC", - Handler: _Network_CreateSVC_Handler, - }, - { - MethodName: "UpdateSVC", - Handler: _Network_UpdateSVC_Handler, - }, - { - MethodName: "DeleteSVC", - Handler: _Network_DeleteSVC_Handler, - }, - { - MethodName: "ListEP", - Handler: _Network_ListEP_Handler, - }, - { - MethodName: "GetEP", - Handler: _Network_GetEP_Handler, - }, - { - MethodName: "GetEPStatus", - Handler: _Network_GetEPStatus_Handler, - }, - { - MethodName: "CreateEP", - Handler: _Network_CreateEP_Handler, - }, - { - MethodName: "UpdateEP", - Handler: _Network_UpdateEP_Handler, - }, - { - MethodName: "DeleteEP", - Handler: _Network_DeleteEP_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// ConfigClient is the client API for Config service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ConfigClient interface { - ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type configClient struct { - cc grpc.ClientConnInterface -} - -func NewConfigClient(cc grpc.ClientConnInterface) ConfigClient { - return &configClient{cc} -} - -func (c *configClient) ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/ListCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/GetCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/ListSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/GetSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ConfigServer is the server API for Config service. -type ConfigServer interface { - ListCM(context.Context, *ResListReq) (*CommonResp, error) - GetCM(context.Context, *ResGetReq) (*CommonResp, error) - CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSecret(context.Context, *ResListReq) (*CommonResp, error) - GetSecret(context.Context, *ResGetReq) (*CommonResp, error) - CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedConfigServer can be embedded to have forward compatible implementations. -type UnimplementedConfigServer struct { -} - -func (*UnimplementedConfigServer) ListCM(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCM not implemented") -} -func (*UnimplementedConfigServer) GetCM(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCM not implemented") -} -func (*UnimplementedConfigServer) CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCM not implemented") -} -func (*UnimplementedConfigServer) UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCM not implemented") -} -func (*UnimplementedConfigServer) DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCM not implemented") -} -func (*UnimplementedConfigServer) ListSecret(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSecret not implemented") -} -func (*UnimplementedConfigServer) GetSecret(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSecret not implemented") -} -func (*UnimplementedConfigServer) CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSecret not implemented") -} -func (*UnimplementedConfigServer) UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") -} -func (*UnimplementedConfigServer) DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSecret not implemented") -} - -func RegisterConfigServer(s *grpc.Server, srv ConfigServer) { - s.RegisterService(&_Config_serviceDesc, srv) -} - -func _Config_ListCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).ListCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/ListCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).ListCM(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_GetCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).GetCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/GetCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).GetCM(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_CreateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).CreateCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/CreateCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).CreateCM(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_UpdateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).UpdateCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/UpdateCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).UpdateCM(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_DeleteCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).DeleteCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/DeleteCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).DeleteCM(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_ListSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).ListSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/ListSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).ListSecret(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_GetSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).GetSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/GetSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).GetSecret(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_CreateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).CreateSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/CreateSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).CreateSecret(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_UpdateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).UpdateSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/UpdateSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).UpdateSecret(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_DeleteSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).DeleteSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/DeleteSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).DeleteSecret(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Config_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Config", - HandlerType: (*ConfigServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListCM", - Handler: _Config_ListCM_Handler, - }, - { - MethodName: "GetCM", - Handler: _Config_GetCM_Handler, - }, - { - MethodName: "CreateCM", - Handler: _Config_CreateCM_Handler, - }, - { - MethodName: "UpdateCM", - Handler: _Config_UpdateCM_Handler, - }, - { - MethodName: "DeleteCM", - Handler: _Config_DeleteCM_Handler, - }, - { - MethodName: "ListSecret", - Handler: _Config_ListSecret_Handler, - }, - { - MethodName: "GetSecret", - Handler: _Config_GetSecret_Handler, - }, - { - MethodName: "CreateSecret", - Handler: _Config_CreateSecret_Handler, - }, - { - MethodName: "UpdateSecret", - Handler: _Config_UpdateSecret_Handler, - }, - { - MethodName: "DeleteSecret", - Handler: _Config_DeleteSecret_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// StorageClient is the client API for Storage service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type StorageClient interface { - ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type storageClient struct { - cc grpc.ClientConnInterface -} - -func NewStorageClient(cc grpc.ClientConnInterface) StorageClient { - return &storageClient{cc} -} - -func (c *storageClient) ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVCMountInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreateSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdateSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeleteSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// StorageServer is the server API for Storage service. -type StorageServer interface { - ListPV(context.Context, *ResListReq) (*CommonResp, error) - GetPV(context.Context, *ResGetReq) (*CommonResp, error) - CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPVC(context.Context, *ResListReq) (*CommonResp, error) - GetPVC(context.Context, *ResGetReq) (*CommonResp, error) - GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) - CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSC(context.Context, *ResListReq) (*CommonResp, error) - GetSC(context.Context, *ResGetReq) (*CommonResp, error) - CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedStorageServer can be embedded to have forward compatible implementations. -type UnimplementedStorageServer struct { -} - -func (*UnimplementedStorageServer) ListPV(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPV not implemented") -} -func (*UnimplementedStorageServer) GetPV(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPV not implemented") -} -func (*UnimplementedStorageServer) CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePV not implemented") -} -func (*UnimplementedStorageServer) UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePV not implemented") -} -func (*UnimplementedStorageServer) DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePV not implemented") -} -func (*UnimplementedStorageServer) ListPVC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPVC not implemented") -} -func (*UnimplementedStorageServer) GetPVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPVC not implemented") -} -func (*UnimplementedStorageServer) GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPVCMountInfo not implemented") -} -func (*UnimplementedStorageServer) CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePVC not implemented") -} -func (*UnimplementedStorageServer) UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePVC not implemented") -} -func (*UnimplementedStorageServer) DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePVC not implemented") -} -func (*UnimplementedStorageServer) ListSC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSC not implemented") -} -func (*UnimplementedStorageServer) GetSC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSC not implemented") -} -func (*UnimplementedStorageServer) CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSC not implemented") -} -func (*UnimplementedStorageServer) UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSC not implemented") -} -func (*UnimplementedStorageServer) DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSC not implemented") -} - -func RegisterStorageServer(s *grpc.Server, srv StorageServer) { - s.RegisterService(&_Storage_serviceDesc, srv) -} - -func _Storage_ListPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListPV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListPV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListPV(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPV(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreatePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreatePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreatePV(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdatePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdatePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdatePV(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeletePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeletePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeletePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeletePV(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_ListPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListPVC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPVCMountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPVCMountInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPVCMountInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPVCMountInfo(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreatePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreatePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreatePVC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdatePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdatePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdatePVC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeletePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeletePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeletePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeletePVC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_ListSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListSC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetSC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreateSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreateSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreateSC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdateSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdateSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdateSC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeleteSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeleteSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeleteSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeleteSC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Storage_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Storage", - HandlerType: (*StorageServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListPV", - Handler: _Storage_ListPV_Handler, - }, - { - MethodName: "GetPV", - Handler: _Storage_GetPV_Handler, - }, - { - MethodName: "CreatePV", - Handler: _Storage_CreatePV_Handler, - }, - { - MethodName: "UpdatePV", - Handler: _Storage_UpdatePV_Handler, - }, - { - MethodName: "DeletePV", - Handler: _Storage_DeletePV_Handler, - }, - { - MethodName: "ListPVC", - Handler: _Storage_ListPVC_Handler, - }, - { - MethodName: "GetPVC", - Handler: _Storage_GetPVC_Handler, - }, - { - MethodName: "GetPVCMountInfo", - Handler: _Storage_GetPVCMountInfo_Handler, - }, - { - MethodName: "CreatePVC", - Handler: _Storage_CreatePVC_Handler, - }, - { - MethodName: "UpdatePVC", - Handler: _Storage_UpdatePVC_Handler, - }, - { - MethodName: "DeletePVC", - Handler: _Storage_DeletePVC_Handler, - }, - { - MethodName: "ListSC", - Handler: _Storage_ListSC_Handler, - }, - { - MethodName: "GetSC", - Handler: _Storage_GetSC_Handler, - }, - { - MethodName: "CreateSC", - Handler: _Storage_CreateSC_Handler, - }, - { - MethodName: "UpdateSC", - Handler: _Storage_UpdateSC_Handler, - }, - { - MethodName: "DeleteSC", - Handler: _Storage_DeleteSC_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// RBACClient is the client API for RBAC service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type RBACClient interface { - ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type rBACClient struct { - cc grpc.ClientConnInterface -} - -func NewRBACClient(cc grpc.ClientConnInterface) RBACClient { - return &rBACClient{cc} -} - -func (c *rBACClient) ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/ListSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/GetSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/CreateSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/UpdateSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/DeleteSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// RBACServer is the server API for RBAC service. -type RBACServer interface { - ListSA(context.Context, *ResListReq) (*CommonResp, error) - GetSA(context.Context, *ResGetReq) (*CommonResp, error) - CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedRBACServer can be embedded to have forward compatible implementations. -type UnimplementedRBACServer struct { -} - -func (*UnimplementedRBACServer) ListSA(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSA not implemented") -} -func (*UnimplementedRBACServer) GetSA(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSA not implemented") -} -func (*UnimplementedRBACServer) CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSA not implemented") -} -func (*UnimplementedRBACServer) UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSA not implemented") -} -func (*UnimplementedRBACServer) DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSA not implemented") -} - -func RegisterRBACServer(s *grpc.Server, srv RBACServer) { - s.RegisterService(&_RBAC_serviceDesc, srv) -} - -func _RBAC_ListSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).ListSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/ListSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).ListSA(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_GetSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).GetSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/GetSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).GetSA(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_CreateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).CreateSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/CreateSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).CreateSA(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_UpdateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).UpdateSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/UpdateSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).UpdateSA(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_DeleteSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).DeleteSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/DeleteSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).DeleteSA(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _RBAC_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.RBAC", - HandlerType: (*RBACServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListSA", - Handler: _RBAC_ListSA_Handler, - }, - { - MethodName: "GetSA", - Handler: _RBAC_GetSA_Handler, - }, - { - MethodName: "CreateSA", - Handler: _RBAC_CreateSA_Handler, - }, - { - MethodName: "UpdateSA", - Handler: _RBAC_UpdateSA_Handler, - }, - { - MethodName: "DeleteSA", - Handler: _RBAC_DeleteSA_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// HPAClient is the client API for HPA service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type HPAClient interface { - ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type hPAClient struct { - cc grpc.ClientConnInterface -} - -func NewHPAClient(cc grpc.ClientConnInterface) HPAClient { - return &hPAClient{cc} -} - -func (c *hPAClient) ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/ListHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/GetHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/CreateHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/UpdateHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/DeleteHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// HPAServer is the server API for HPA service. -type HPAServer interface { - ListHPA(context.Context, *ResListReq) (*CommonResp, error) - GetHPA(context.Context, *ResGetReq) (*CommonResp, error) - CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedHPAServer can be embedded to have forward compatible implementations. -type UnimplementedHPAServer struct { -} - -func (*UnimplementedHPAServer) ListHPA(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListHPA not implemented") -} -func (*UnimplementedHPAServer) GetHPA(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetHPA not implemented") -} -func (*UnimplementedHPAServer) CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateHPA not implemented") -} -func (*UnimplementedHPAServer) UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateHPA not implemented") -} -func (*UnimplementedHPAServer) DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteHPA not implemented") -} - -func RegisterHPAServer(s *grpc.Server, srv HPAServer) { - s.RegisterService(&_HPA_serviceDesc, srv) -} - -func _HPA_ListHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).ListHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/ListHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).ListHPA(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_GetHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).GetHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/GetHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).GetHPA(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_CreateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).CreateHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/CreateHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).CreateHPA(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_UpdateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).UpdateHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/UpdateHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).UpdateHPA(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_DeleteHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).DeleteHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/DeleteHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).DeleteHPA(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _HPA_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.HPA", - HandlerType: (*HPAServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListHPA", - Handler: _HPA_ListHPA_Handler, - }, - { - MethodName: "GetHPA", - Handler: _HPA_GetHPA_Handler, - }, - { - MethodName: "CreateHPA", - Handler: _HPA_CreateHPA_Handler, - }, - { - MethodName: "UpdateHPA", - Handler: _HPA_UpdateHPA_Handler, - }, - { - MethodName: "DeleteHPA", - Handler: _HPA_DeleteHPA_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// CustomResClient is the client API for CustomRes service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type CustomResClient interface { - ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type customResClient struct { - cc grpc.ClientConnInterface -} - -func NewCustomResClient(cc grpc.ClientConnInterface) CustomResClient { - return &customResClient{cc} -} - -func (c *customResClient) ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCRD", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCRD", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/CreateCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/UpdateCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ScaleCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/DeleteCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RescheduleCObjPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// CustomResServer is the server API for CustomRes service. -type CustomResServer interface { - ListCRD(context.Context, *ResListReq) (*CommonResp, error) - GetCRD(context.Context, *ResGetReq) (*CommonResp, error) - ListCObj(context.Context, *CObjListReq) (*CommonResp, error) - GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) - CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) - UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) - ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) - DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) - RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) -} - -// UnimplementedCustomResServer can be embedded to have forward compatible implementations. -type UnimplementedCustomResServer struct { -} - -func (*UnimplementedCustomResServer) ListCRD(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCRD not implemented") -} -func (*UnimplementedCustomResServer) GetCRD(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCRD not implemented") -} -func (*UnimplementedCustomResServer) ListCObj(context.Context, *CObjListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCObj not implemented") -} -func (*UnimplementedCustomResServer) GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCObj not implemented") -} -func (*UnimplementedCustomResServer) CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCObj not implemented") -} -func (*UnimplementedCustomResServer) UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCObj not implemented") -} -func (*UnimplementedCustomResServer) ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleCObj not implemented") -} -func (*UnimplementedCustomResServer) DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCObj not implemented") -} -func (*UnimplementedCustomResServer) RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleCObjPo not implemented") -} - -func RegisterCustomResServer(s *grpc.Server, srv CustomResServer) { - s.RegisterService(&_CustomRes_serviceDesc, srv) -} - -func _CustomRes_ListCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ListCRD(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ListCRD", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ListCRD(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_GetCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).GetCRD(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/GetCRD", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).GetCRD(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_ListCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ListCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ListCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ListCObj(ctx, req.(*CObjListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_GetCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).GetCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/GetCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).GetCObj(ctx, req.(*CObjGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_CreateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).CreateCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/CreateCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).CreateCObj(ctx, req.(*CObjCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_UpdateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).UpdateCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/UpdateCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).UpdateCObj(ctx, req.(*CObjUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_ScaleCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ScaleCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ScaleCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ScaleCObj(ctx, req.(*CObjScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_DeleteCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).DeleteCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/DeleteCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).DeleteCObj(ctx, req.(*CObjDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_RescheduleCObjPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).RescheduleCObjPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/RescheduleCObjPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).RescheduleCObjPo(ctx, req.(*CObjBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _CustomRes_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.CustomRes", - HandlerType: (*CustomResServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListCRD", - Handler: _CustomRes_ListCRD_Handler, - }, - { - MethodName: "GetCRD", - Handler: _CustomRes_GetCRD_Handler, - }, - { - MethodName: "ListCObj", - Handler: _CustomRes_ListCObj_Handler, - }, - { - MethodName: "GetCObj", - Handler: _CustomRes_GetCObj_Handler, - }, - { - MethodName: "CreateCObj", - Handler: _CustomRes_CreateCObj_Handler, - }, - { - MethodName: "UpdateCObj", - Handler: _CustomRes_UpdateCObj_Handler, - }, - { - MethodName: "ScaleCObj", - Handler: _CustomRes_ScaleCObj_Handler, - }, - { - MethodName: "DeleteCObj", - Handler: _CustomRes_DeleteCObj_Handler, - }, - { - MethodName: "RescheduleCObjPo", - Handler: _CustomRes_RescheduleCObjPo_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// ResourceClient is the client API for Resource service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ResourceClient interface { - // 示例模板接口 - GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) - // 订阅接口 - Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) - // 主动使 Discover 缓存失效 - InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) - // 表单化数据渲染预览 - FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) - // 获取指定资源表单 Schema - GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) - GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) - // 获取用于下拉框选项的资源数据 - GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type resourceClient struct { - cc grpc.ClientConnInterface -} - -func NewResourceClient(cc grpc.ClientConnInterface) ResourceClient { - return &resourceClient{cc} -} - -func (c *resourceClient) GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetK8SResTemplate", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) { - stream, err := c.cc.NewStream(ctx, &_Resource_serviceDesc.Streams[0], "/clusterresources.Resource/Subscribe", opts...) - if err != nil { - return nil, err - } - x := &resourceSubscribeClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Resource_SubscribeClient interface { - Recv() (*SubscribeResp, error) - grpc.ClientStream -} - -type resourceSubscribeClient struct { - grpc.ClientStream -} - -func (x *resourceSubscribeClient) Recv() (*SubscribeResp, error) { - m := new(SubscribeResp) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *resourceClient) InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/InvalidateDiscoveryCache", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/FormDataRenderPreview", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResFormSchema", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetFormSupportedAPIVersions", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResSelectItems", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ResourceServer is the server API for Resource service. -type ResourceServer interface { - // 示例模板接口 - GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) - // 订阅接口 - Subscribe(*SubscribeReq, Resource_SubscribeServer) error - // 主动使 Discover 缓存失效 - InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) - // 表单化数据渲染预览 - FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) - // 获取指定资源表单 Schema - GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) - GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) - // 获取用于下拉框选项的资源数据 - GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) -} - -// UnimplementedResourceServer can be embedded to have forward compatible implementations. -type UnimplementedResourceServer struct { -} - -func (*UnimplementedResourceServer) GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetK8SResTemplate not implemented") -} -func (*UnimplementedResourceServer) Subscribe(*SubscribeReq, Resource_SubscribeServer) error { - return status.Errorf(codes.Unimplemented, "method Subscribe not implemented") -} -func (*UnimplementedResourceServer) InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method InvalidateDiscoveryCache not implemented") -} -func (*UnimplementedResourceServer) FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FormDataRenderPreview not implemented") -} -func (*UnimplementedResourceServer) GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetResFormSchema not implemented") -} -func (*UnimplementedResourceServer) GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFormSupportedAPIVersions not implemented") -} -func (*UnimplementedResourceServer) GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetResSelectItems not implemented") -} - -func RegisterResourceServer(s *grpc.Server, srv ResourceServer) { - s.RegisterService(&_Resource_serviceDesc, srv) -} - -func _Resource_GetK8SResTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetK8SResTemplateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetK8SResTemplate(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetK8SResTemplate", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetK8SResTemplate(ctx, req.(*GetK8SResTemplateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(SubscribeReq) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(ResourceServer).Subscribe(m, &resourceSubscribeServer{stream}) -} - -type Resource_SubscribeServer interface { - Send(*SubscribeResp) error - grpc.ServerStream -} - -type resourceSubscribeServer struct { - grpc.ServerStream -} - -func (x *resourceSubscribeServer) Send(m *SubscribeResp) error { - return x.ServerStream.SendMsg(m) -} - -func _Resource_InvalidateDiscoveryCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InvalidateDiscoveryCacheReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/InvalidateDiscoveryCache", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, req.(*InvalidateDiscoveryCacheReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_FormDataRenderPreview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FormRenderPreviewReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).FormDataRenderPreview(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/FormDataRenderPreview", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).FormDataRenderPreview(ctx, req.(*FormRenderPreviewReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetResFormSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResFormSchemaReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetResFormSchema(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetResFormSchema", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetResFormSchema(ctx, req.(*GetResFormSchemaReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetFormSupportedAPIVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFormSupportedApiVersionsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetFormSupportedAPIVersions", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, req.(*GetFormSupportedApiVersionsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetResSelectItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResSelectItemsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetResSelectItems(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetResSelectItems", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetResSelectItems(ctx, req.(*GetResSelectItemsReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Resource_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Resource", - HandlerType: (*ResourceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetK8SResTemplate", - Handler: _Resource_GetK8SResTemplate_Handler, - }, - { - MethodName: "InvalidateDiscoveryCache", - Handler: _Resource_InvalidateDiscoveryCache_Handler, - }, - { - MethodName: "FormDataRenderPreview", - Handler: _Resource_FormDataRenderPreview_Handler, - }, - { - MethodName: "GetResFormSchema", - Handler: _Resource_GetResFormSchema_Handler, - }, - { - MethodName: "GetFormSupportedAPIVersions", - Handler: _Resource_GetFormSupportedAPIVersions_Handler, - }, - { - MethodName: "GetResSelectItems", - Handler: _Resource_GetResSelectItems_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "Subscribe", - Handler: _Resource_Subscribe_Handler, - ServerStreams: true, - }, - }, - Metadata: "cluster-resources.proto", -} - -// ViewConfigClient is the client API for ViewConfig service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ViewConfigClient interface { - // 获取视图配置列表 - ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) - // 获取视图配置详情 - GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 创建视图配置 - CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 更新视图配置 - UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 视图重命名 - RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 删除视图配置 - DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type viewConfigClient struct { - cc grpc.ClientConnInterface -} - -func NewViewConfigClient(cc grpc.ClientConnInterface) ViewConfigClient { - return &viewConfigClient{cc} -} - -func (c *viewConfigClient) ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/ListViewConfigs", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/GetViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/CreateViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/UpdateViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/RenameViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/DeleteViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ViewConfigServer is the server API for ViewConfig service. -type ViewConfigServer interface { - // 获取视图配置列表 - ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) - // 获取视图配置详情 - GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) - // 创建视图配置 - CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) - // 更新视图配置 - UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) - // 视图重命名 - RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) - // 删除视图配置 - DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) -} - -// UnimplementedViewConfigServer can be embedded to have forward compatible implementations. -type UnimplementedViewConfigServer struct { -} - -func (*UnimplementedViewConfigServer) ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListViewConfigs not implemented") -} -func (*UnimplementedViewConfigServer) GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RenameViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteViewConfig not implemented") -} - -func RegisterViewConfigServer(s *grpc.Server, srv ViewConfigServer) { - s.RegisterService(&_ViewConfig_serviceDesc, srv) -} - -func _ViewConfig_ListViewConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListViewConfigsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).ListViewConfigs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/ListViewConfigs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).ListViewConfigs(ctx, req.(*ListViewConfigsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_GetViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).GetViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/GetViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).GetViewConfig(ctx, req.(*GetViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_CreateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).CreateViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/CreateViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).CreateViewConfig(ctx, req.(*CreateViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_UpdateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).UpdateViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/UpdateViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).UpdateViewConfig(ctx, req.(*UpdateViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_RenameViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RenameViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).RenameViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/RenameViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).RenameViewConfig(ctx, req.(*RenameViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_DeleteViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).DeleteViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/DeleteViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).DeleteViewConfig(ctx, req.(*DeleteViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _ViewConfig_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.ViewConfig", - HandlerType: (*ViewConfigServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListViewConfigs", - Handler: _ViewConfig_ListViewConfigs_Handler, - }, - { - MethodName: "GetViewConfig", - Handler: _ViewConfig_GetViewConfig_Handler, - }, - { - MethodName: "CreateViewConfig", - Handler: _ViewConfig_CreateViewConfig_Handler, - }, - { - MethodName: "UpdateViewConfig", - Handler: _ViewConfig_UpdateViewConfig_Handler, - }, - { - MethodName: "RenameViewConfig", - Handler: _ViewConfig_RenameViewConfig_Handler, - }, - { - MethodName: "DeleteViewConfig", - Handler: _ViewConfig_DeleteViewConfig_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// MultiClusterClient is the client API for MultiCluster service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type MultiClusterClient interface { - FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) - FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) - MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type multiClusterClient struct { - cc grpc.ClientConnInterface -} - -func NewMultiClusterClient(cc grpc.ClientConnInterface) MultiClusterClient { - return &multiClusterClient{cc} -} - -func (c *multiClusterClient) FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterResource", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *multiClusterClient) FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *multiClusterClient) MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/MultiClusterResourceCount", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// MultiClusterServer is the server API for MultiCluster service. -type MultiClusterServer interface { - FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) - FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) - MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) -} - -// UnimplementedMultiClusterServer can be embedded to have forward compatible implementations. -type UnimplementedMultiClusterServer struct { -} - -func (*UnimplementedMultiClusterServer) FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterResource not implemented") -} -func (*UnimplementedMultiClusterServer) FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterCustomResource not implemented") -} -func (*UnimplementedMultiClusterServer) MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method MultiClusterResourceCount not implemented") -} - -func RegisterMultiClusterServer(s *grpc.Server, srv MultiClusterServer) { - s.RegisterService(&_MultiCluster_serviceDesc, srv) -} - -func _MultiCluster_FetchMultiClusterResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FetchMultiClusterResourceReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterResource", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, req.(*FetchMultiClusterResourceReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MultiCluster_FetchMultiClusterCustomResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FetchMultiClusterCustomResourceReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, req.(*FetchMultiClusterCustomResourceReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MultiCluster_MultiClusterResourceCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MultiClusterResourceCountReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/MultiClusterResourceCount", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, req.(*MultiClusterResourceCountReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _MultiCluster_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.MultiCluster", - HandlerType: (*MultiClusterServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "FetchMultiClusterResource", - Handler: _MultiCluster_FetchMultiClusterResource_Handler, - }, - { - MethodName: "FetchMultiClusterCustomResource", - Handler: _MultiCluster_FetchMultiClusterCustomResource_Handler, - }, - { - MethodName: "MultiClusterResourceCount", - Handler: _MultiCluster_MultiClusterResourceCount_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go index daf736cf36..40716aa82e 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go @@ -14097,6 +14097,438 @@ func local_request_CustomRes_GetCObj_0(ctx context.Context, marshaler runtime.Ma } +var ( + filter_CustomRes_GetCObjHistoryRevision_0 = &utilities.DoubleArray{Encoding: map[string]int{"projectID": 0, "clusterID": 1, "CRDName": 2, "cobjName": 3}, Base: []int{1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 1, 2, 3, 4, 5}} +) + +func request_CustomRes_GetCObjHistoryRevision_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjHistoryReq + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CustomRes_GetCObjHistoryRevision_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetCObjHistoryRevision(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_GetCObjHistoryRevision_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjHistoryReq + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CustomRes_GetCObjHistoryRevision_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetCObjHistoryRevision(ctx, &protoReq) + return msg, metadata, err + +} + +func request_CustomRes_RestartCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRestartReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + msg, err := client.RestartCObj(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_RestartCObj_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRestartReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + msg, err := server.RestartCObj(ctx, &protoReq) + return msg, metadata, err + +} + +func request_CustomRes_RolloutCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRolloutReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + val, ok = pathParams["revision"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision") + } + + protoReq.Revision, err = runtime.Int64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err) + } + + msg, err := client.RolloutCObj(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_RolloutCObj_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRolloutReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + val, ok = pathParams["revision"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision") + } + + protoReq.Revision, err = runtime.Int64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err) + } + + msg, err := server.RolloutCObj(ctx, &protoReq) + return msg, metadata, err + +} + func request_CustomRes_CreateCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CObjCreateReq var metadata runtime.ServerMetadata @@ -18831,6 +19263,75 @@ func RegisterCustomResGwServer(ctx context.Context, mux *runtime.ServeMux, serve }) + mux.Handle("GET", pattern_CustomRes_GetCObjHistoryRevision_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_GetCObjHistoryRevision_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_GetCObjHistoryRevision_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RestartCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_RestartCObj_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RestartCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RolloutCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_RolloutCObj_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RolloutCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_CustomRes_CreateCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -22587,6 +23088,66 @@ func RegisterCustomResGwClient(ctx context.Context, mux *runtime.ServeMux, clien }) + mux.Handle("GET", pattern_CustomRes_GetCObjHistoryRevision_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_GetCObjHistoryRevision_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_GetCObjHistoryRevision_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RestartCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_RestartCObj_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RestartCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RolloutCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_RolloutCObj_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RolloutCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_CustomRes_CreateCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -22699,6 +23260,12 @@ var ( pattern_CustomRes_GetCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CustomRes_GetCObjHistoryRevision_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "history"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_CustomRes_RestartCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "restart"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_CustomRes_RolloutCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10, 1, 0, 4, 1, 5, 11}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "rollout", "revision"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CustomRes_CreateCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects"}, "", runtime.AssumeColonVerbOpt(true))) pattern_CustomRes_UpdateCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName"}, "", runtime.AssumeColonVerbOpt(true))) @@ -22719,6 +23286,12 @@ var ( forward_CustomRes_GetCObj_0 = runtime.ForwardResponseMessage + forward_CustomRes_GetCObjHistoryRevision_0 = runtime.ForwardResponseMessage + + forward_CustomRes_RestartCObj_0 = runtime.ForwardResponseMessage + + forward_CustomRes_RolloutCObj_0 = runtime.ForwardResponseMessage + forward_CustomRes_CreateCObj_0 = runtime.ForwardResponseMessage forward_CustomRes_UpdateCObj_0 = runtime.ForwardResponseMessage diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go index a7e312203e..b68a75c976 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go @@ -3752,6 +3752,24 @@ func NewCustomResEndpoints() []*api.Endpoint { Method: []string{"GET"}, Handler: "rpc", }, + { + Name: "CustomRes.GetCObjHistoryRevision", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history"}, + Method: []string{"GET"}, + Handler: "rpc", + }, + { + Name: "CustomRes.RestartCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart"}, + Method: []string{"PUT"}, + Handler: "rpc", + }, + { + Name: "CustomRes.RolloutCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}"}, + Method: []string{"PUT"}, + Handler: "rpc", + }, { Name: "CustomRes.CreateCObj", Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects"}, @@ -3792,6 +3810,9 @@ type CustomResService interface { GetCRD(ctx context.Context, in *ResGetReq, opts ...client.CallOption) (*CommonResp, error) ListCObj(ctx context.Context, in *CObjListReq, opts ...client.CallOption) (*CommonResp, error) GetCObj(ctx context.Context, in *CObjGetReq, opts ...client.CallOption) (*CommonResp, error) + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...client.CallOption) (*CommonListResp, error) + RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...client.CallOption) (*CommonResp, error) + RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...client.CallOption) (*CommonResp, error) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...client.CallOption) (*CommonResp, error) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...client.CallOption) (*CommonResp, error) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...client.CallOption) (*CommonResp, error) @@ -3851,6 +3872,36 @@ func (c *customResService) GetCObj(ctx context.Context, in *CObjGetReq, opts ... return out, nil } +func (c *customResService) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...client.CallOption) (*CommonListResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.GetCObjHistoryRevision", in) + out := new(CommonListResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResService) RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...client.CallOption) (*CommonResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.RestartCObj", in) + out := new(CommonResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResService) RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...client.CallOption) (*CommonResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.RolloutCObj", in) + out := new(CommonResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *customResService) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...client.CallOption) (*CommonResp, error) { req := c.c.NewRequest(c.name, "CustomRes.CreateCObj", in) out := new(CommonResp) @@ -3908,6 +3959,9 @@ type CustomResHandler interface { GetCRD(context.Context, *ResGetReq, *CommonResp) error ListCObj(context.Context, *CObjListReq, *CommonResp) error GetCObj(context.Context, *CObjGetReq, *CommonResp) error + GetCObjHistoryRevision(context.Context, *CObjHistoryReq, *CommonListResp) error + RestartCObj(context.Context, *CObjRestartReq, *CommonResp) error + RolloutCObj(context.Context, *CObjRolloutReq, *CommonResp) error CreateCObj(context.Context, *CObjCreateReq, *CommonResp) error UpdateCObj(context.Context, *CObjUpdateReq, *CommonResp) error ScaleCObj(context.Context, *CObjScaleReq, *CommonResp) error @@ -3921,6 +3975,9 @@ func RegisterCustomResHandler(s server.Server, hdlr CustomResHandler, opts ...se GetCRD(ctx context.Context, in *ResGetReq, out *CommonResp) error ListCObj(ctx context.Context, in *CObjListReq, out *CommonResp) error GetCObj(ctx context.Context, in *CObjGetReq, out *CommonResp) error + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, out *CommonListResp) error + RestartCObj(ctx context.Context, in *CObjRestartReq, out *CommonResp) error + RolloutCObj(ctx context.Context, in *CObjRolloutReq, out *CommonResp) error CreateCObj(ctx context.Context, in *CObjCreateReq, out *CommonResp) error UpdateCObj(ctx context.Context, in *CObjUpdateReq, out *CommonResp) error ScaleCObj(ctx context.Context, in *CObjScaleReq, out *CommonResp) error @@ -3955,6 +4012,24 @@ func RegisterCustomResHandler(s server.Server, hdlr CustomResHandler, opts ...se Method: []string{"GET"}, Handler: "rpc", })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.GetCObjHistoryRevision", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history"}, + Method: []string{"GET"}, + Handler: "rpc", + })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.RestartCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart"}, + Method: []string{"PUT"}, + Handler: "rpc", + })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.RolloutCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}"}, + Method: []string{"PUT"}, + Handler: "rpc", + })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ Name: "CustomRes.CreateCObj", Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects"}, @@ -4008,6 +4083,18 @@ func (h *customResHandler) GetCObj(ctx context.Context, in *CObjGetReq, out *Com return h.CustomResHandler.GetCObj(ctx, in, out) } +func (h *customResHandler) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, out *CommonListResp) error { + return h.CustomResHandler.GetCObjHistoryRevision(ctx, in, out) +} + +func (h *customResHandler) RestartCObj(ctx context.Context, in *CObjRestartReq, out *CommonResp) error { + return h.CustomResHandler.RestartCObj(ctx, in, out) +} + +func (h *customResHandler) RolloutCObj(ctx context.Context, in *CObjRolloutReq, out *CommonResp) error { + return h.CustomResHandler.RolloutCObj(ctx, in, out) +} + func (h *customResHandler) CreateCObj(ctx context.Context, in *CObjCreateReq, out *CommonResp) error { return h.CustomResHandler.CreateCObj(ctx, in, out) } diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go index c9b0bcaa47..42987cfc93 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go @@ -4013,6 +4013,527 @@ var _CObjGetReq_Format_InLookup = map[string]struct{}{ "formData": {}, } +// Validate checks the field values on CObjHistoryReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjHistoryReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjHistoryReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjHistoryReqMultiError, +// or nil if none found. +func (m *CObjHistoryReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjHistoryReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjHistoryReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjHistoryReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjHistoryReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjHistoryReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjHistoryReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjHistoryReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjHistoryReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjHistoryReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjHistoryReqMultiError(errors) + } + + return nil +} + +// CObjHistoryReqMultiError is an error wrapping multiple validation errors +// returned by CObjHistoryReq.ValidateAll() if the designated constraints +// aren't met. +type CObjHistoryReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjHistoryReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjHistoryReqMultiError) AllErrors() []error { return m } + +// CObjHistoryReqValidationError is the validation error returned by +// CObjHistoryReq.Validate if the designated constraints aren't met. +type CObjHistoryReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjHistoryReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjHistoryReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjHistoryReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjHistoryReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjHistoryReqValidationError) ErrorName() string { return "CObjHistoryReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjHistoryReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjHistoryReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjHistoryReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjHistoryReqValidationError{} + +var _CObjHistoryReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjHistoryReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + +// Validate checks the field values on CObjRestartReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjRestartReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjRestartReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjRestartReqMultiError, +// or nil if none found. +func (m *CObjRestartReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjRestartReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjRestartReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjRestartReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjRestartReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjRestartReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjRestartReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjRestartReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjRestartReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjRestartReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjRestartReqMultiError(errors) + } + + return nil +} + +// CObjRestartReqMultiError is an error wrapping multiple validation errors +// returned by CObjRestartReq.ValidateAll() if the designated constraints +// aren't met. +type CObjRestartReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjRestartReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjRestartReqMultiError) AllErrors() []error { return m } + +// CObjRestartReqValidationError is the validation error returned by +// CObjRestartReq.Validate if the designated constraints aren't met. +type CObjRestartReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjRestartReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjRestartReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjRestartReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjRestartReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjRestartReqValidationError) ErrorName() string { return "CObjRestartReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjRestartReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjRestartReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjRestartReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjRestartReqValidationError{} + +var _CObjRestartReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjRestartReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + +// Validate checks the field values on CObjRolloutReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjRolloutReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjRolloutReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjRolloutReqMultiError, +// or nil if none found. +func (m *CObjRolloutReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjRolloutReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjRolloutReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjRolloutReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjRolloutReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjRolloutReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjRolloutReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjRolloutReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjRolloutReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjRolloutReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetRevision() < 0 { + err := CObjRolloutReqValidationError{ + field: "Revision", + reason: "value must be greater than or equal to 0", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjRolloutReqMultiError(errors) + } + + return nil +} + +// CObjRolloutReqMultiError is an error wrapping multiple validation errors +// returned by CObjRolloutReq.ValidateAll() if the designated constraints +// aren't met. +type CObjRolloutReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjRolloutReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjRolloutReqMultiError) AllErrors() []error { return m } + +// CObjRolloutReqValidationError is the validation error returned by +// CObjRolloutReq.Validate if the designated constraints aren't met. +type CObjRolloutReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjRolloutReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjRolloutReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjRolloutReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjRolloutReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjRolloutReqValidationError) ErrorName() string { return "CObjRolloutReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjRolloutReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjRolloutReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjRolloutReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjRolloutReqValidationError{} + +var _CObjRolloutReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjRolloutReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + // Validate checks the field values on CObjCreateReq with the rules defined in // the proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto index 0ab45fcea7..972fa4fa20 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto @@ -1287,6 +1287,38 @@ service CustomRes { }; } + rpc GetCObjHistoryRevision(CObjHistoryReq) returns (CommonListResp) { + option (google.api.http) = { + get: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "获取 自定义资源 Revision" + summary: "GetCObjHistoryRevision API" + }; + } + + rpc RestartCObj(CObjRestartReq) returns (CommonResp) { + option (google.api.http) = { + put: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "重新调度 自定义资源" + summary: "RestartCObj API" + }; + } + + rpc RolloutCObj(CObjRolloutReq) returns (CommonResp) { + option (google.api.http) = { + put: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "回滚 自定义资源 Revision" + summary: "RolloutCObj API" + }; + } + rpc CreateCObj(CObjCreateReq) returns (CommonResp) { option (google.api.http) = { post: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects" @@ -1982,6 +2014,72 @@ message CObjGetReq { }, (validate.rules).string = {in: ["", "manifest", "formData"]}]; } +message CObjHistoryReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjHistoryReq", description: "自定义资源列表历史版本请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; +} + +message CObjRestartReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjRestartReq", description: "重新部署单个自定义资源请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; +} + +message CObjRolloutReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjRolloutReq", description: "回滚自定义资源请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; + int64 revision = 6 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "revision 版本" + }, (validate.rules).int64 = {gte: 0}]; +} + message CObjCreateReq { option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { json_schema: {title: "CObjCreateReq", description: "创建单个自定义资源请求体"} diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json index da0a6f99ef..c5cf549bdb 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json @@ -984,6 +984,63 @@ ] } }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history": { + "get": { + "summary": "GetCObjHistoryRevision API", + "description": "获取 自定义资源 Revision", + "operationId": "CustomRes_GetCObjHistoryRevision", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonListResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "namespace", + "description": "命名空间.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "CustomRes" + ] + } + }, "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/reschedule": { "put": { "summary": "RescheduleCObjPo API", @@ -1042,6 +1099,129 @@ ] } }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart": { + "put": { + "summary": "RestartCObj API", + "description": "重新调度 自定义资源", + "operationId": "CustomRes_RestartCObj", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/clusterresourcesCObjRestartReq" + } + } + ], + "tags": [ + "CustomRes" + ] + } + }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}": { + "put": { + "summary": "RolloutCObj API", + "description": "回滚 自定义资源 Revision", + "operationId": "CustomRes_RolloutCObj", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "revision", + "in": "path", + "required": true, + "type": "string", + "format": "int64" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/clusterresourcesCObjRolloutReq" + } + } + ], + "tags": [ + "CustomRes" + ] + } + }, "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/scale": { "put": { "summary": "ScaleCObj API", @@ -8128,6 +8308,65 @@ "description": "创建单个自定义资源请求体", "title": "CObjCreateReq" }, + "clusterresourcesCObjRestartReq": { + "type": "object", + "properties": { + "projectID": { + "type": "string", + "title": "项目 ID" + }, + "clusterID": { + "type": "string", + "title": "集群 ID" + }, + "CRDName": { + "type": "string", + "title": "CRD 名称" + }, + "cobjName": { + "type": "string", + "title": "自定义资源名称" + }, + "namespace": { + "type": "string", + "title": "命名空间" + } + }, + "description": "重新部署单个自定义资源请求体", + "title": "CObjRestartReq" + }, + "clusterresourcesCObjRolloutReq": { + "type": "object", + "properties": { + "projectID": { + "type": "string", + "title": "项目 ID" + }, + "clusterID": { + "type": "string", + "title": "集群 ID" + }, + "CRDName": { + "type": "string", + "title": "CRD 名称" + }, + "cobjName": { + "type": "string", + "title": "自定义资源名称" + }, + "namespace": { + "type": "string", + "title": "命名空间" + }, + "revision": { + "type": "string", + "format": "int64", + "title": "revision 版本" + } + }, + "description": "回滚自定义资源请求体", + "title": "CObjRolloutReq" + }, "clusterresourcesCObjScaleReq": { "type": "object", "properties": { diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go new file mode 100644 index 0000000000..89ba961f55 --- /dev/null +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go @@ -0,0 +1,5833 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.22.0 +// source: cluster-resources.proto + +package clusterresources + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// BasicClient is the client API for Basic service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BasicClient interface { + Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) + Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) + Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) + Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) +} + +type basicClient struct { + cc grpc.ClientConnInterface +} + +func NewBasicClient(cc grpc.ClientConnInterface) BasicClient { + return &basicClient{cc} +} + +func (c *basicClient) Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) { + out := new(EchoResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Echo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) { + out := new(PingResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) { + out := new(HealthzResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Healthz", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) { + out := new(VersionResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Version", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BasicServer is the server API for Basic service. +// All implementations must embed UnimplementedBasicServer +// for forward compatibility +type BasicServer interface { + Echo(context.Context, *EchoReq) (*EchoResp, error) + Ping(context.Context, *PingReq) (*PingResp, error) + Healthz(context.Context, *HealthzReq) (*HealthzResp, error) + Version(context.Context, *VersionReq) (*VersionResp, error) + mustEmbedUnimplementedBasicServer() +} + +// UnimplementedBasicServer must be embedded to have forward compatible implementations. +type UnimplementedBasicServer struct { +} + +func (UnimplementedBasicServer) Echo(context.Context, *EchoReq) (*EchoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") +} +func (UnimplementedBasicServer) Ping(context.Context, *PingReq) (*PingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedBasicServer) Healthz(context.Context, *HealthzReq) (*HealthzResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") +} +func (UnimplementedBasicServer) Version(context.Context, *VersionReq) (*VersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedBasicServer) mustEmbedUnimplementedBasicServer() {} + +// UnsafeBasicServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to BasicServer will +// result in compilation errors. +type UnsafeBasicServer interface { + mustEmbedUnimplementedBasicServer() +} + +func RegisterBasicServer(s grpc.ServiceRegistrar, srv BasicServer) { + s.RegisterService(&Basic_ServiceDesc, srv) +} + +func _Basic_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EchoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Echo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Echo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Echo(ctx, req.(*EchoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Ping(ctx, req.(*PingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Healthz_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HealthzReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Healthz(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Healthz", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Healthz(ctx, req.(*HealthzReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Version", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Version(ctx, req.(*VersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Basic_ServiceDesc is the grpc.ServiceDesc for Basic service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Basic_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Basic", + HandlerType: (*BasicServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Echo", + Handler: _Basic_Echo_Handler, + }, + { + MethodName: "Ping", + Handler: _Basic_Ping_Handler, + }, + { + MethodName: "Healthz", + Handler: _Basic_Healthz_Handler, + }, + { + MethodName: "Version", + Handler: _Basic_Version_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NodeClient interface { + ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type nodeClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeClient(cc grpc.ClientConnInterface) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Node/ListNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +// All implementations must embed UnimplementedNodeServer +// for forward compatibility +type NodeServer interface { + ListNode(context.Context, *ResListReq) (*CommonResp, error) + mustEmbedUnimplementedNodeServer() +} + +// UnimplementedNodeServer must be embedded to have forward compatible implementations. +type UnimplementedNodeServer struct { +} + +func (UnimplementedNodeServer) ListNode(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNode not implemented") +} +func (UnimplementedNodeServer) mustEmbedUnimplementedNodeServer() {} + +// UnsafeNodeServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NodeServer will +// result in compilation errors. +type UnsafeNodeServer interface { + mustEmbedUnimplementedNodeServer() +} + +func RegisterNodeServer(s grpc.ServiceRegistrar, srv NodeServer) { + s.RegisterService(&Node_ServiceDesc, srv) +} + +func _Node_ListNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Node/ListNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListNode(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Node_ServiceDesc is the grpc.ServiceDesc for Node service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Node_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListNode", + Handler: _Node_ListNode_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NamespaceClient is the client API for Namespace service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NamespaceClient interface { + ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type namespaceClient struct { + cc grpc.ClientConnInterface +} + +func NewNamespaceClient(cc grpc.ClientConnInterface) NamespaceClient { + return &namespaceClient{cc} +} + +func (c *namespaceClient) ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Namespace/ListNS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NamespaceServer is the server API for Namespace service. +// All implementations must embed UnimplementedNamespaceServer +// for forward compatibility +type NamespaceServer interface { + ListNS(context.Context, *ResListReq) (*CommonResp, error) + mustEmbedUnimplementedNamespaceServer() +} + +// UnimplementedNamespaceServer must be embedded to have forward compatible implementations. +type UnimplementedNamespaceServer struct { +} + +func (UnimplementedNamespaceServer) ListNS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNS not implemented") +} +func (UnimplementedNamespaceServer) mustEmbedUnimplementedNamespaceServer() {} + +// UnsafeNamespaceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NamespaceServer will +// result in compilation errors. +type UnsafeNamespaceServer interface { + mustEmbedUnimplementedNamespaceServer() +} + +func RegisterNamespaceServer(s grpc.ServiceRegistrar, srv NamespaceServer) { + s.RegisterService(&Namespace_ServiceDesc, srv) +} + +func _Namespace_ListNS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NamespaceServer).ListNS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Namespace/ListNS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NamespaceServer).ListNS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Namespace_ServiceDesc is the grpc.ServiceDesc for Namespace service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Namespace_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Namespace", + HandlerType: (*NamespaceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListNS", + Handler: _Namespace_ListNS_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// WorkloadClient is the client API for Workload service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type WorkloadClient interface { + ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) +} + +type workloadClient struct { + cc grpc.ClientConnInterface +} + +func NewWorkloadClient(cc grpc.ClientConnInterface) WorkloadClient { + return &workloadClient{cc} +} + +func (c *workloadClient) ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/PauseOrResumeDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleDeployPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDeployRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListRS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDSRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutSTSRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleSTSPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoByNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreatePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdatePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeletePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ReschedulePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListContainer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainerEnvInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WorkloadServer is the server API for Workload service. +// All implementations must embed UnimplementedWorkloadServer +// for forward compatibility +type WorkloadServer interface { + ListDeploy(context.Context, *ResListReq) (*CommonResp, error) + GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) + CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) + PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) + ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) + RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) + DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) + GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + ListRS(context.Context, *ResListReq) (*CommonResp, error) + ListDS(context.Context, *ResListReq) (*CommonResp, error) + GetDS(context.Context, *ResGetReq) (*CommonResp, error) + CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) + GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSTS(context.Context, *ResListReq) (*CommonResp, error) + GetSTS(context.Context, *ResGetReq) (*CommonResp, error) + CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) + GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) + RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) + DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) + ListCJ(context.Context, *ResListReq) (*CommonResp, error) + GetCJ(context.Context, *ResGetReq) (*CommonResp, error) + CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) + ListJob(context.Context, *ResListReq) (*CommonResp, error) + GetJob(context.Context, *ResGetReq) (*CommonResp, error) + CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPo(context.Context, *ResListReq) (*CommonResp, error) + ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) + GetPo(context.Context, *ResGetReq) (*CommonResp, error) + CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) + ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) + ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) + ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) + ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) + GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) + GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) + mustEmbedUnimplementedWorkloadServer() +} + +// UnimplementedWorkloadServer must be embedded to have forward compatible implementations. +type UnimplementedWorkloadServer struct { +} + +func (UnimplementedWorkloadServer) ListDeploy(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDeploy not implemented") +} +func (UnimplementedWorkloadServer) GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeploy not implemented") +} +func (UnimplementedWorkloadServer) CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDeploy not implemented") +} +func (UnimplementedWorkloadServer) UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDeploy not implemented") +} +func (UnimplementedWorkloadServer) RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartDeploy not implemented") +} +func (UnimplementedWorkloadServer) PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PauseOrResumeDeploy not implemented") +} +func (UnimplementedWorkloadServer) ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleDeploy not implemented") +} +func (UnimplementedWorkloadServer) RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleDeployPo not implemented") +} +func (UnimplementedWorkloadServer) DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDeploy not implemented") +} +func (UnimplementedWorkloadServer) GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeployHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeployRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutDeployRevision not implemented") +} +func (UnimplementedWorkloadServer) ListRS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRS not implemented") +} +func (UnimplementedWorkloadServer) ListDS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDS not implemented") +} +func (UnimplementedWorkloadServer) GetDS(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDS not implemented") +} +func (UnimplementedWorkloadServer) CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDS not implemented") +} +func (UnimplementedWorkloadServer) UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDS not implemented") +} +func (UnimplementedWorkloadServer) RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartDS not implemented") +} +func (UnimplementedWorkloadServer) GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDSHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDSRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutDSRevision not implemented") +} +func (UnimplementedWorkloadServer) DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDS not implemented") +} +func (UnimplementedWorkloadServer) ListSTS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSTS not implemented") +} +func (UnimplementedWorkloadServer) GetSTS(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTS not implemented") +} +func (UnimplementedWorkloadServer) CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSTS not implemented") +} +func (UnimplementedWorkloadServer) UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSTS not implemented") +} +func (UnimplementedWorkloadServer) RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartSTS not implemented") +} +func (UnimplementedWorkloadServer) GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTSHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTSRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutSTSRevision not implemented") +} +func (UnimplementedWorkloadServer) ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleSTS not implemented") +} +func (UnimplementedWorkloadServer) RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleSTSPo not implemented") +} +func (UnimplementedWorkloadServer) DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSTS not implemented") +} +func (UnimplementedWorkloadServer) ListCJ(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCJ not implemented") +} +func (UnimplementedWorkloadServer) GetCJ(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCJ not implemented") +} +func (UnimplementedWorkloadServer) CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCJ not implemented") +} +func (UnimplementedWorkloadServer) UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCJ not implemented") +} +func (UnimplementedWorkloadServer) DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCJ not implemented") +} +func (UnimplementedWorkloadServer) ListJob(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") +} +func (UnimplementedWorkloadServer) GetJob(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") +} +func (UnimplementedWorkloadServer) CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateJob not implemented") +} +func (UnimplementedWorkloadServer) UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateJob not implemented") +} +func (UnimplementedWorkloadServer) DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") +} +func (UnimplementedWorkloadServer) ListPo(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPo not implemented") +} +func (UnimplementedWorkloadServer) ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoByNode not implemented") +} +func (UnimplementedWorkloadServer) GetPo(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPo not implemented") +} +func (UnimplementedWorkloadServer) CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePo not implemented") +} +func (UnimplementedWorkloadServer) UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePo not implemented") +} +func (UnimplementedWorkloadServer) DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePo not implemented") +} +func (UnimplementedWorkloadServer) ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoPVC not implemented") +} +func (UnimplementedWorkloadServer) ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoCM not implemented") +} +func (UnimplementedWorkloadServer) ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoSecret not implemented") +} +func (UnimplementedWorkloadServer) ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReschedulePo not implemented") +} +func (UnimplementedWorkloadServer) ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListContainer not implemented") +} +func (UnimplementedWorkloadServer) GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContainer not implemented") +} +func (UnimplementedWorkloadServer) GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContainerEnvInfo not implemented") +} +func (UnimplementedWorkloadServer) mustEmbedUnimplementedWorkloadServer() {} + +// UnsafeWorkloadServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WorkloadServer will +// result in compilation errors. +type UnsafeWorkloadServer interface { + mustEmbedUnimplementedWorkloadServer() +} + +func RegisterWorkloadServer(s grpc.ServiceRegistrar, srv WorkloadServer) { + s.RegisterService(&Workload_ServiceDesc, srv) +} + +func _Workload_ListDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListDeploy(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeploy(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateDeploy(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateDeploy(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartDeploy(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_PauseOrResumeDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResPauseOrResumeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/PauseOrResumeDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, req.(*ResPauseOrResumeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ScaleDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ScaleDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ScaleDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ScaleDeploy(ctx, req.(*ResScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RescheduleDeployPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RescheduleDeployPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RescheduleDeployPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RescheduleDeployPo(ctx, req.(*ResBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteDeploy(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeployHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeployHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeployRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeployRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutDeployRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutDeployRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutDeployRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutDeployRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListRS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListRS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListRS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListRS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListDS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDS(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateDS(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateDS(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartDS(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDSHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDSHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDSHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDSRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDSRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDSRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutDSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutDSRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutDSRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutDSRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteDS(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListSTS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTS(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateSTS(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateSTS(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartSTS(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTSHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTSRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutSTSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutSTSRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutSTSRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutSTSRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ScaleSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ScaleSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ScaleSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ScaleSTS(ctx, req.(*ResScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RescheduleSTSPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RescheduleSTSPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RescheduleSTSPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RescheduleSTSPo(ctx, req.(*ResBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteSTS(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListCJ(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetCJ(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateCJ(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateCJ(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteCJ(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListJob(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetJob(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateJob(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateJob(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteJob(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPo(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoByNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPoByNodeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoByNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoByNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoByNode(ctx, req.(*ListPoByNodeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetPo(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreatePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreatePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreatePo(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdatePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdatePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdatePo(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeletePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeletePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeletePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeletePo(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoPVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoCM(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoSecret(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ReschedulePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ReschedulePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ReschedulePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ReschedulePo(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListContainer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListContainer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListContainer(ctx, req.(*ContainerListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetContainer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetContainer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetContainer(ctx, req.(*ContainerGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetContainerEnvInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetContainerEnvInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetContainerEnvInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetContainerEnvInfo(ctx, req.(*ContainerGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Workload_ServiceDesc is the grpc.ServiceDesc for Workload service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Workload_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Workload", + HandlerType: (*WorkloadServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListDeploy", + Handler: _Workload_ListDeploy_Handler, + }, + { + MethodName: "GetDeploy", + Handler: _Workload_GetDeploy_Handler, + }, + { + MethodName: "CreateDeploy", + Handler: _Workload_CreateDeploy_Handler, + }, + { + MethodName: "UpdateDeploy", + Handler: _Workload_UpdateDeploy_Handler, + }, + { + MethodName: "RestartDeploy", + Handler: _Workload_RestartDeploy_Handler, + }, + { + MethodName: "PauseOrResumeDeploy", + Handler: _Workload_PauseOrResumeDeploy_Handler, + }, + { + MethodName: "ScaleDeploy", + Handler: _Workload_ScaleDeploy_Handler, + }, + { + MethodName: "RescheduleDeployPo", + Handler: _Workload_RescheduleDeployPo_Handler, + }, + { + MethodName: "DeleteDeploy", + Handler: _Workload_DeleteDeploy_Handler, + }, + { + MethodName: "GetDeployHistoryRevision", + Handler: _Workload_GetDeployHistoryRevision_Handler, + }, + { + MethodName: "GetDeployRevisionDiff", + Handler: _Workload_GetDeployRevisionDiff_Handler, + }, + { + MethodName: "RolloutDeployRevision", + Handler: _Workload_RolloutDeployRevision_Handler, + }, + { + MethodName: "ListRS", + Handler: _Workload_ListRS_Handler, + }, + { + MethodName: "ListDS", + Handler: _Workload_ListDS_Handler, + }, + { + MethodName: "GetDS", + Handler: _Workload_GetDS_Handler, + }, + { + MethodName: "CreateDS", + Handler: _Workload_CreateDS_Handler, + }, + { + MethodName: "UpdateDS", + Handler: _Workload_UpdateDS_Handler, + }, + { + MethodName: "RestartDS", + Handler: _Workload_RestartDS_Handler, + }, + { + MethodName: "GetDSHistoryRevision", + Handler: _Workload_GetDSHistoryRevision_Handler, + }, + { + MethodName: "GetDSRevisionDiff", + Handler: _Workload_GetDSRevisionDiff_Handler, + }, + { + MethodName: "RolloutDSRevision", + Handler: _Workload_RolloutDSRevision_Handler, + }, + { + MethodName: "DeleteDS", + Handler: _Workload_DeleteDS_Handler, + }, + { + MethodName: "ListSTS", + Handler: _Workload_ListSTS_Handler, + }, + { + MethodName: "GetSTS", + Handler: _Workload_GetSTS_Handler, + }, + { + MethodName: "CreateSTS", + Handler: _Workload_CreateSTS_Handler, + }, + { + MethodName: "UpdateSTS", + Handler: _Workload_UpdateSTS_Handler, + }, + { + MethodName: "RestartSTS", + Handler: _Workload_RestartSTS_Handler, + }, + { + MethodName: "GetSTSHistoryRevision", + Handler: _Workload_GetSTSHistoryRevision_Handler, + }, + { + MethodName: "GetSTSRevisionDiff", + Handler: _Workload_GetSTSRevisionDiff_Handler, + }, + { + MethodName: "RolloutSTSRevision", + Handler: _Workload_RolloutSTSRevision_Handler, + }, + { + MethodName: "ScaleSTS", + Handler: _Workload_ScaleSTS_Handler, + }, + { + MethodName: "RescheduleSTSPo", + Handler: _Workload_RescheduleSTSPo_Handler, + }, + { + MethodName: "DeleteSTS", + Handler: _Workload_DeleteSTS_Handler, + }, + { + MethodName: "ListCJ", + Handler: _Workload_ListCJ_Handler, + }, + { + MethodName: "GetCJ", + Handler: _Workload_GetCJ_Handler, + }, + { + MethodName: "CreateCJ", + Handler: _Workload_CreateCJ_Handler, + }, + { + MethodName: "UpdateCJ", + Handler: _Workload_UpdateCJ_Handler, + }, + { + MethodName: "DeleteCJ", + Handler: _Workload_DeleteCJ_Handler, + }, + { + MethodName: "ListJob", + Handler: _Workload_ListJob_Handler, + }, + { + MethodName: "GetJob", + Handler: _Workload_GetJob_Handler, + }, + { + MethodName: "CreateJob", + Handler: _Workload_CreateJob_Handler, + }, + { + MethodName: "UpdateJob", + Handler: _Workload_UpdateJob_Handler, + }, + { + MethodName: "DeleteJob", + Handler: _Workload_DeleteJob_Handler, + }, + { + MethodName: "ListPo", + Handler: _Workload_ListPo_Handler, + }, + { + MethodName: "ListPoByNode", + Handler: _Workload_ListPoByNode_Handler, + }, + { + MethodName: "GetPo", + Handler: _Workload_GetPo_Handler, + }, + { + MethodName: "CreatePo", + Handler: _Workload_CreatePo_Handler, + }, + { + MethodName: "UpdatePo", + Handler: _Workload_UpdatePo_Handler, + }, + { + MethodName: "DeletePo", + Handler: _Workload_DeletePo_Handler, + }, + { + MethodName: "ListPoPVC", + Handler: _Workload_ListPoPVC_Handler, + }, + { + MethodName: "ListPoCM", + Handler: _Workload_ListPoCM_Handler, + }, + { + MethodName: "ListPoSecret", + Handler: _Workload_ListPoSecret_Handler, + }, + { + MethodName: "ReschedulePo", + Handler: _Workload_ReschedulePo_Handler, + }, + { + MethodName: "ListContainer", + Handler: _Workload_ListContainer_Handler, + }, + { + MethodName: "GetContainer", + Handler: _Workload_GetContainer_Handler, + }, + { + MethodName: "GetContainerEnvInfo", + Handler: _Workload_GetContainerEnvInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NetworkClient is the client API for Network service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NetworkClient interface { + ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type networkClient struct { + cc grpc.ClientConnInterface +} + +func NewNetworkClient(cc grpc.ClientConnInterface) NetworkClient { + return &networkClient{cc} +} + +func (c *networkClient) ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEPStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NetworkServer is the server API for Network service. +// All implementations must embed UnimplementedNetworkServer +// for forward compatibility +type NetworkServer interface { + ListIng(context.Context, *ResListReq) (*CommonResp, error) + GetIng(context.Context, *ResGetReq) (*CommonResp, error) + CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSVC(context.Context, *ResListReq) (*CommonResp, error) + GetSVC(context.Context, *ResGetReq) (*CommonResp, error) + CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) + ListEP(context.Context, *ResListReq) (*CommonResp, error) + GetEP(context.Context, *ResGetReq) (*CommonResp, error) + GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) + CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedNetworkServer() +} + +// UnimplementedNetworkServer must be embedded to have forward compatible implementations. +type UnimplementedNetworkServer struct { +} + +func (UnimplementedNetworkServer) ListIng(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListIng not implemented") +} +func (UnimplementedNetworkServer) GetIng(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetIng not implemented") +} +func (UnimplementedNetworkServer) CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateIng not implemented") +} +func (UnimplementedNetworkServer) UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateIng not implemented") +} +func (UnimplementedNetworkServer) DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteIng not implemented") +} +func (UnimplementedNetworkServer) ListSVC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSVC not implemented") +} +func (UnimplementedNetworkServer) GetSVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSVC not implemented") +} +func (UnimplementedNetworkServer) CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSVC not implemented") +} +func (UnimplementedNetworkServer) UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSVC not implemented") +} +func (UnimplementedNetworkServer) DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSVC not implemented") +} +func (UnimplementedNetworkServer) ListEP(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEP not implemented") +} +func (UnimplementedNetworkServer) GetEP(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEP not implemented") +} +func (UnimplementedNetworkServer) GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEPStatus not implemented") +} +func (UnimplementedNetworkServer) CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateEP not implemented") +} +func (UnimplementedNetworkServer) UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateEP not implemented") +} +func (UnimplementedNetworkServer) DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteEP not implemented") +} +func (UnimplementedNetworkServer) mustEmbedUnimplementedNetworkServer() {} + +// UnsafeNetworkServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NetworkServer will +// result in compilation errors. +type UnsafeNetworkServer interface { + mustEmbedUnimplementedNetworkServer() +} + +func RegisterNetworkServer(s grpc.ServiceRegistrar, srv NetworkServer) { + s.RegisterService(&Network_ServiceDesc, srv) +} + +func _Network_ListIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListIng(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetIng(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateIng(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateIng(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteIng(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_ListSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListSVC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetSVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateSVC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateSVC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteSVC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_ListEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListEP(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetEP(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetEPStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetEPStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetEPStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetEPStatus(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateEP(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateEP(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteEP(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Network_ServiceDesc is the grpc.ServiceDesc for Network service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Network_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Network", + HandlerType: (*NetworkServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListIng", + Handler: _Network_ListIng_Handler, + }, + { + MethodName: "GetIng", + Handler: _Network_GetIng_Handler, + }, + { + MethodName: "CreateIng", + Handler: _Network_CreateIng_Handler, + }, + { + MethodName: "UpdateIng", + Handler: _Network_UpdateIng_Handler, + }, + { + MethodName: "DeleteIng", + Handler: _Network_DeleteIng_Handler, + }, + { + MethodName: "ListSVC", + Handler: _Network_ListSVC_Handler, + }, + { + MethodName: "GetSVC", + Handler: _Network_GetSVC_Handler, + }, + { + MethodName: "CreateSVC", + Handler: _Network_CreateSVC_Handler, + }, + { + MethodName: "UpdateSVC", + Handler: _Network_UpdateSVC_Handler, + }, + { + MethodName: "DeleteSVC", + Handler: _Network_DeleteSVC_Handler, + }, + { + MethodName: "ListEP", + Handler: _Network_ListEP_Handler, + }, + { + MethodName: "GetEP", + Handler: _Network_GetEP_Handler, + }, + { + MethodName: "GetEPStatus", + Handler: _Network_GetEPStatus_Handler, + }, + { + MethodName: "CreateEP", + Handler: _Network_CreateEP_Handler, + }, + { + MethodName: "UpdateEP", + Handler: _Network_UpdateEP_Handler, + }, + { + MethodName: "DeleteEP", + Handler: _Network_DeleteEP_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// ConfigClient is the client API for Config service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ConfigClient interface { + ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type configClient struct { + cc grpc.ClientConnInterface +} + +func NewConfigClient(cc grpc.ClientConnInterface) ConfigClient { + return &configClient{cc} +} + +func (c *configClient) ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/ListCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/GetCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/ListSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/GetSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ConfigServer is the server API for Config service. +// All implementations must embed UnimplementedConfigServer +// for forward compatibility +type ConfigServer interface { + ListCM(context.Context, *ResListReq) (*CommonResp, error) + GetCM(context.Context, *ResGetReq) (*CommonResp, error) + CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSecret(context.Context, *ResListReq) (*CommonResp, error) + GetSecret(context.Context, *ResGetReq) (*CommonResp, error) + CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedConfigServer() +} + +// UnimplementedConfigServer must be embedded to have forward compatible implementations. +type UnimplementedConfigServer struct { +} + +func (UnimplementedConfigServer) ListCM(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCM not implemented") +} +func (UnimplementedConfigServer) GetCM(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCM not implemented") +} +func (UnimplementedConfigServer) CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCM not implemented") +} +func (UnimplementedConfigServer) UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCM not implemented") +} +func (UnimplementedConfigServer) DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCM not implemented") +} +func (UnimplementedConfigServer) ListSecret(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSecret not implemented") +} +func (UnimplementedConfigServer) GetSecret(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSecret not implemented") +} +func (UnimplementedConfigServer) CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSecret not implemented") +} +func (UnimplementedConfigServer) UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") +} +func (UnimplementedConfigServer) DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSecret not implemented") +} +func (UnimplementedConfigServer) mustEmbedUnimplementedConfigServer() {} + +// UnsafeConfigServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ConfigServer will +// result in compilation errors. +type UnsafeConfigServer interface { + mustEmbedUnimplementedConfigServer() +} + +func RegisterConfigServer(s grpc.ServiceRegistrar, srv ConfigServer) { + s.RegisterService(&Config_ServiceDesc, srv) +} + +func _Config_ListCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).ListCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/ListCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).ListCM(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_GetCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).GetCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/GetCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).GetCM(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_CreateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).CreateCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/CreateCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).CreateCM(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_UpdateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).UpdateCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/UpdateCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).UpdateCM(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_DeleteCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).DeleteCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/DeleteCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).DeleteCM(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_ListSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).ListSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/ListSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).ListSecret(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_GetSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).GetSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/GetSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).GetSecret(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_CreateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).CreateSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/CreateSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).CreateSecret(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_UpdateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).UpdateSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/UpdateSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).UpdateSecret(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_DeleteSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).DeleteSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/DeleteSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).DeleteSecret(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Config_ServiceDesc is the grpc.ServiceDesc for Config service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Config_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Config", + HandlerType: (*ConfigServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListCM", + Handler: _Config_ListCM_Handler, + }, + { + MethodName: "GetCM", + Handler: _Config_GetCM_Handler, + }, + { + MethodName: "CreateCM", + Handler: _Config_CreateCM_Handler, + }, + { + MethodName: "UpdateCM", + Handler: _Config_UpdateCM_Handler, + }, + { + MethodName: "DeleteCM", + Handler: _Config_DeleteCM_Handler, + }, + { + MethodName: "ListSecret", + Handler: _Config_ListSecret_Handler, + }, + { + MethodName: "GetSecret", + Handler: _Config_GetSecret_Handler, + }, + { + MethodName: "CreateSecret", + Handler: _Config_CreateSecret_Handler, + }, + { + MethodName: "UpdateSecret", + Handler: _Config_UpdateSecret_Handler, + }, + { + MethodName: "DeleteSecret", + Handler: _Config_DeleteSecret_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// StorageClient is the client API for Storage service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type StorageClient interface { + ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type storageClient struct { + cc grpc.ClientConnInterface +} + +func NewStorageClient(cc grpc.ClientConnInterface) StorageClient { + return &storageClient{cc} +} + +func (c *storageClient) ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVCMountInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreateSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdateSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeleteSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// StorageServer is the server API for Storage service. +// All implementations must embed UnimplementedStorageServer +// for forward compatibility +type StorageServer interface { + ListPV(context.Context, *ResListReq) (*CommonResp, error) + GetPV(context.Context, *ResGetReq) (*CommonResp, error) + CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPVC(context.Context, *ResListReq) (*CommonResp, error) + GetPVC(context.Context, *ResGetReq) (*CommonResp, error) + GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) + CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSC(context.Context, *ResListReq) (*CommonResp, error) + GetSC(context.Context, *ResGetReq) (*CommonResp, error) + CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedStorageServer() +} + +// UnimplementedStorageServer must be embedded to have forward compatible implementations. +type UnimplementedStorageServer struct { +} + +func (UnimplementedStorageServer) ListPV(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPV not implemented") +} +func (UnimplementedStorageServer) GetPV(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPV not implemented") +} +func (UnimplementedStorageServer) CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePV not implemented") +} +func (UnimplementedStorageServer) UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePV not implemented") +} +func (UnimplementedStorageServer) DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePV not implemented") +} +func (UnimplementedStorageServer) ListPVC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPVC not implemented") +} +func (UnimplementedStorageServer) GetPVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPVC not implemented") +} +func (UnimplementedStorageServer) GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPVCMountInfo not implemented") +} +func (UnimplementedStorageServer) CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePVC not implemented") +} +func (UnimplementedStorageServer) UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePVC not implemented") +} +func (UnimplementedStorageServer) DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePVC not implemented") +} +func (UnimplementedStorageServer) ListSC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSC not implemented") +} +func (UnimplementedStorageServer) GetSC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSC not implemented") +} +func (UnimplementedStorageServer) CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSC not implemented") +} +func (UnimplementedStorageServer) UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSC not implemented") +} +func (UnimplementedStorageServer) DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSC not implemented") +} +func (UnimplementedStorageServer) mustEmbedUnimplementedStorageServer() {} + +// UnsafeStorageServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to StorageServer will +// result in compilation errors. +type UnsafeStorageServer interface { + mustEmbedUnimplementedStorageServer() +} + +func RegisterStorageServer(s grpc.ServiceRegistrar, srv StorageServer) { + s.RegisterService(&Storage_ServiceDesc, srv) +} + +func _Storage_ListPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListPV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListPV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListPV(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPV(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreatePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreatePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreatePV(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdatePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdatePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdatePV(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeletePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeletePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeletePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeletePV(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_ListPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListPVC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPVCMountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPVCMountInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPVCMountInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPVCMountInfo(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreatePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreatePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreatePVC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdatePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdatePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdatePVC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeletePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeletePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeletePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeletePVC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_ListSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListSC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetSC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreateSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreateSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreateSC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdateSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdateSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdateSC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeleteSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeleteSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeleteSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeleteSC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Storage_ServiceDesc is the grpc.ServiceDesc for Storage service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Storage_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Storage", + HandlerType: (*StorageServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPV", + Handler: _Storage_ListPV_Handler, + }, + { + MethodName: "GetPV", + Handler: _Storage_GetPV_Handler, + }, + { + MethodName: "CreatePV", + Handler: _Storage_CreatePV_Handler, + }, + { + MethodName: "UpdatePV", + Handler: _Storage_UpdatePV_Handler, + }, + { + MethodName: "DeletePV", + Handler: _Storage_DeletePV_Handler, + }, + { + MethodName: "ListPVC", + Handler: _Storage_ListPVC_Handler, + }, + { + MethodName: "GetPVC", + Handler: _Storage_GetPVC_Handler, + }, + { + MethodName: "GetPVCMountInfo", + Handler: _Storage_GetPVCMountInfo_Handler, + }, + { + MethodName: "CreatePVC", + Handler: _Storage_CreatePVC_Handler, + }, + { + MethodName: "UpdatePVC", + Handler: _Storage_UpdatePVC_Handler, + }, + { + MethodName: "DeletePVC", + Handler: _Storage_DeletePVC_Handler, + }, + { + MethodName: "ListSC", + Handler: _Storage_ListSC_Handler, + }, + { + MethodName: "GetSC", + Handler: _Storage_GetSC_Handler, + }, + { + MethodName: "CreateSC", + Handler: _Storage_CreateSC_Handler, + }, + { + MethodName: "UpdateSC", + Handler: _Storage_UpdateSC_Handler, + }, + { + MethodName: "DeleteSC", + Handler: _Storage_DeleteSC_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// RBACClient is the client API for RBAC service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RBACClient interface { + ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type rBACClient struct { + cc grpc.ClientConnInterface +} + +func NewRBACClient(cc grpc.ClientConnInterface) RBACClient { + return &rBACClient{cc} +} + +func (c *rBACClient) ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/ListSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/GetSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/CreateSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/UpdateSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/DeleteSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RBACServer is the server API for RBAC service. +// All implementations must embed UnimplementedRBACServer +// for forward compatibility +type RBACServer interface { + ListSA(context.Context, *ResListReq) (*CommonResp, error) + GetSA(context.Context, *ResGetReq) (*CommonResp, error) + CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedRBACServer() +} + +// UnimplementedRBACServer must be embedded to have forward compatible implementations. +type UnimplementedRBACServer struct { +} + +func (UnimplementedRBACServer) ListSA(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSA not implemented") +} +func (UnimplementedRBACServer) GetSA(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSA not implemented") +} +func (UnimplementedRBACServer) CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSA not implemented") +} +func (UnimplementedRBACServer) UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSA not implemented") +} +func (UnimplementedRBACServer) DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSA not implemented") +} +func (UnimplementedRBACServer) mustEmbedUnimplementedRBACServer() {} + +// UnsafeRBACServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RBACServer will +// result in compilation errors. +type UnsafeRBACServer interface { + mustEmbedUnimplementedRBACServer() +} + +func RegisterRBACServer(s grpc.ServiceRegistrar, srv RBACServer) { + s.RegisterService(&RBAC_ServiceDesc, srv) +} + +func _RBAC_ListSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).ListSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/ListSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).ListSA(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_GetSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).GetSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/GetSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).GetSA(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_CreateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).CreateSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/CreateSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).CreateSA(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_UpdateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).UpdateSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/UpdateSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).UpdateSA(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_DeleteSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).DeleteSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/DeleteSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).DeleteSA(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// RBAC_ServiceDesc is the grpc.ServiceDesc for RBAC service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RBAC_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.RBAC", + HandlerType: (*RBACServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListSA", + Handler: _RBAC_ListSA_Handler, + }, + { + MethodName: "GetSA", + Handler: _RBAC_GetSA_Handler, + }, + { + MethodName: "CreateSA", + Handler: _RBAC_CreateSA_Handler, + }, + { + MethodName: "UpdateSA", + Handler: _RBAC_UpdateSA_Handler, + }, + { + MethodName: "DeleteSA", + Handler: _RBAC_DeleteSA_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// HPAClient is the client API for HPA service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type HPAClient interface { + ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type hPAClient struct { + cc grpc.ClientConnInterface +} + +func NewHPAClient(cc grpc.ClientConnInterface) HPAClient { + return &hPAClient{cc} +} + +func (c *hPAClient) ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/ListHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/GetHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/CreateHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/UpdateHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/DeleteHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HPAServer is the server API for HPA service. +// All implementations must embed UnimplementedHPAServer +// for forward compatibility +type HPAServer interface { + ListHPA(context.Context, *ResListReq) (*CommonResp, error) + GetHPA(context.Context, *ResGetReq) (*CommonResp, error) + CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedHPAServer() +} + +// UnimplementedHPAServer must be embedded to have forward compatible implementations. +type UnimplementedHPAServer struct { +} + +func (UnimplementedHPAServer) ListHPA(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHPA not implemented") +} +func (UnimplementedHPAServer) GetHPA(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHPA not implemented") +} +func (UnimplementedHPAServer) CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateHPA not implemented") +} +func (UnimplementedHPAServer) UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHPA not implemented") +} +func (UnimplementedHPAServer) DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteHPA not implemented") +} +func (UnimplementedHPAServer) mustEmbedUnimplementedHPAServer() {} + +// UnsafeHPAServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to HPAServer will +// result in compilation errors. +type UnsafeHPAServer interface { + mustEmbedUnimplementedHPAServer() +} + +func RegisterHPAServer(s grpc.ServiceRegistrar, srv HPAServer) { + s.RegisterService(&HPA_ServiceDesc, srv) +} + +func _HPA_ListHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).ListHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/ListHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).ListHPA(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_GetHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).GetHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/GetHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).GetHPA(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_CreateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).CreateHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/CreateHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).CreateHPA(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_UpdateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).UpdateHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/UpdateHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).UpdateHPA(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_DeleteHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).DeleteHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/DeleteHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).DeleteHPA(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// HPA_ServiceDesc is the grpc.ServiceDesc for HPA service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var HPA_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.HPA", + HandlerType: (*HPAServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListHPA", + Handler: _HPA_ListHPA_Handler, + }, + { + MethodName: "GetHPA", + Handler: _HPA_GetHPA_Handler, + }, + { + MethodName: "CreateHPA", + Handler: _HPA_CreateHPA_Handler, + }, + { + MethodName: "UpdateHPA", + Handler: _HPA_UpdateHPA_Handler, + }, + { + MethodName: "DeleteHPA", + Handler: _HPA_DeleteHPA_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// CustomResClient is the client API for CustomRes service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CustomResClient interface { + ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type customResClient struct { + cc grpc.ClientConnInterface +} + +func NewCustomResClient(cc grpc.ClientConnInterface) CustomResClient { + return &customResClient{cc} +} + +func (c *customResClient) ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCRD", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCRD", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObjHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RestartCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RolloutCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/CreateCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/UpdateCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ScaleCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/DeleteCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RescheduleCObjPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomResServer is the server API for CustomRes service. +// All implementations must embed UnimplementedCustomResServer +// for forward compatibility +type CustomResServer interface { + ListCRD(context.Context, *ResListReq) (*CommonResp, error) + GetCRD(context.Context, *ResGetReq) (*CommonResp, error) + ListCObj(context.Context, *CObjListReq) (*CommonResp, error) + GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) + GetCObjHistoryRevision(context.Context, *CObjHistoryReq) (*CommonListResp, error) + RestartCObj(context.Context, *CObjRestartReq) (*CommonResp, error) + RolloutCObj(context.Context, *CObjRolloutReq) (*CommonResp, error) + CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) + UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) + ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) + DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) + RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) + mustEmbedUnimplementedCustomResServer() +} + +// UnimplementedCustomResServer must be embedded to have forward compatible implementations. +type UnimplementedCustomResServer struct { +} + +func (UnimplementedCustomResServer) ListCRD(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCRD not implemented") +} +func (UnimplementedCustomResServer) GetCRD(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCRD not implemented") +} +func (UnimplementedCustomResServer) ListCObj(context.Context, *CObjListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCObj not implemented") +} +func (UnimplementedCustomResServer) GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCObj not implemented") +} +func (UnimplementedCustomResServer) GetCObjHistoryRevision(context.Context, *CObjHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCObjHistoryRevision not implemented") +} +func (UnimplementedCustomResServer) RestartCObj(context.Context, *CObjRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartCObj not implemented") +} +func (UnimplementedCustomResServer) RolloutCObj(context.Context, *CObjRolloutReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutCObj not implemented") +} +func (UnimplementedCustomResServer) CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCObj not implemented") +} +func (UnimplementedCustomResServer) UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCObj not implemented") +} +func (UnimplementedCustomResServer) ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleCObj not implemented") +} +func (UnimplementedCustomResServer) DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCObj not implemented") +} +func (UnimplementedCustomResServer) RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleCObjPo not implemented") +} +func (UnimplementedCustomResServer) mustEmbedUnimplementedCustomResServer() {} + +// UnsafeCustomResServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CustomResServer will +// result in compilation errors. +type UnsafeCustomResServer interface { + mustEmbedUnimplementedCustomResServer() +} + +func RegisterCustomResServer(s grpc.ServiceRegistrar, srv CustomResServer) { + s.RegisterService(&CustomRes_ServiceDesc, srv) +} + +func _CustomRes_ListCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ListCRD(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ListCRD", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ListCRD(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCRD(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCRD", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCRD(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_ListCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ListCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ListCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ListCObj(ctx, req.(*CObjListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCObj(ctx, req.(*CObjGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCObjHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCObjHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCObjHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCObjHistoryRevision(ctx, req.(*CObjHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RestartCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RestartCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RestartCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RestartCObj(ctx, req.(*CObjRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RolloutCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjRolloutReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RolloutCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RolloutCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RolloutCObj(ctx, req.(*CObjRolloutReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_CreateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).CreateCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/CreateCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).CreateCObj(ctx, req.(*CObjCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_UpdateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).UpdateCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/UpdateCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).UpdateCObj(ctx, req.(*CObjUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_ScaleCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ScaleCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ScaleCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ScaleCObj(ctx, req.(*CObjScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_DeleteCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).DeleteCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/DeleteCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).DeleteCObj(ctx, req.(*CObjDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RescheduleCObjPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RescheduleCObjPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RescheduleCObjPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RescheduleCObjPo(ctx, req.(*CObjBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +// CustomRes_ServiceDesc is the grpc.ServiceDesc for CustomRes service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CustomRes_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.CustomRes", + HandlerType: (*CustomResServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListCRD", + Handler: _CustomRes_ListCRD_Handler, + }, + { + MethodName: "GetCRD", + Handler: _CustomRes_GetCRD_Handler, + }, + { + MethodName: "ListCObj", + Handler: _CustomRes_ListCObj_Handler, + }, + { + MethodName: "GetCObj", + Handler: _CustomRes_GetCObj_Handler, + }, + { + MethodName: "GetCObjHistoryRevision", + Handler: _CustomRes_GetCObjHistoryRevision_Handler, + }, + { + MethodName: "RestartCObj", + Handler: _CustomRes_RestartCObj_Handler, + }, + { + MethodName: "RolloutCObj", + Handler: _CustomRes_RolloutCObj_Handler, + }, + { + MethodName: "CreateCObj", + Handler: _CustomRes_CreateCObj_Handler, + }, + { + MethodName: "UpdateCObj", + Handler: _CustomRes_UpdateCObj_Handler, + }, + { + MethodName: "ScaleCObj", + Handler: _CustomRes_ScaleCObj_Handler, + }, + { + MethodName: "DeleteCObj", + Handler: _CustomRes_DeleteCObj_Handler, + }, + { + MethodName: "RescheduleCObjPo", + Handler: _CustomRes_RescheduleCObjPo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// ResourceClient is the client API for Resource service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ResourceClient interface { + // 示例模板接口 + GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) + // 订阅接口 + Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) + // 主动使 Discover 缓存失效 + InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) + // 表单化数据渲染预览 + FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) + // 获取指定资源表单 Schema + GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) + GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) + // 获取用于下拉框选项的资源数据 + GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type resourceClient struct { + cc grpc.ClientConnInterface +} + +func NewResourceClient(cc grpc.ClientConnInterface) ResourceClient { + return &resourceClient{cc} +} + +func (c *resourceClient) GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetK8SResTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) { + stream, err := c.cc.NewStream(ctx, &Resource_ServiceDesc.Streams[0], "/clusterresources.Resource/Subscribe", opts...) + if err != nil { + return nil, err + } + x := &resourceSubscribeClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Resource_SubscribeClient interface { + Recv() (*SubscribeResp, error) + grpc.ClientStream +} + +type resourceSubscribeClient struct { + grpc.ClientStream +} + +func (x *resourceSubscribeClient) Recv() (*SubscribeResp, error) { + m := new(SubscribeResp) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *resourceClient) InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/InvalidateDiscoveryCache", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/FormDataRenderPreview", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResFormSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetFormSupportedAPIVersions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResSelectItems", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ResourceServer is the server API for Resource service. +// All implementations must embed UnimplementedResourceServer +// for forward compatibility +type ResourceServer interface { + // 示例模板接口 + GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) + // 订阅接口 + Subscribe(*SubscribeReq, Resource_SubscribeServer) error + // 主动使 Discover 缓存失效 + InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) + // 表单化数据渲染预览 + FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) + // 获取指定资源表单 Schema + GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) + GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) + // 获取用于下拉框选项的资源数据 + GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) + mustEmbedUnimplementedResourceServer() +} + +// UnimplementedResourceServer must be embedded to have forward compatible implementations. +type UnimplementedResourceServer struct { +} + +func (UnimplementedResourceServer) GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetK8SResTemplate not implemented") +} +func (UnimplementedResourceServer) Subscribe(*SubscribeReq, Resource_SubscribeServer) error { + return status.Errorf(codes.Unimplemented, "method Subscribe not implemented") +} +func (UnimplementedResourceServer) InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method InvalidateDiscoveryCache not implemented") +} +func (UnimplementedResourceServer) FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FormDataRenderPreview not implemented") +} +func (UnimplementedResourceServer) GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetResFormSchema not implemented") +} +func (UnimplementedResourceServer) GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFormSupportedAPIVersions not implemented") +} +func (UnimplementedResourceServer) GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetResSelectItems not implemented") +} +func (UnimplementedResourceServer) mustEmbedUnimplementedResourceServer() {} + +// UnsafeResourceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ResourceServer will +// result in compilation errors. +type UnsafeResourceServer interface { + mustEmbedUnimplementedResourceServer() +} + +func RegisterResourceServer(s grpc.ServiceRegistrar, srv ResourceServer) { + s.RegisterService(&Resource_ServiceDesc, srv) +} + +func _Resource_GetK8SResTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetK8SResTemplateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetK8SResTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetK8SResTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetK8SResTemplate(ctx, req.(*GetK8SResTemplateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(SubscribeReq) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ResourceServer).Subscribe(m, &resourceSubscribeServer{stream}) +} + +type Resource_SubscribeServer interface { + Send(*SubscribeResp) error + grpc.ServerStream +} + +type resourceSubscribeServer struct { + grpc.ServerStream +} + +func (x *resourceSubscribeServer) Send(m *SubscribeResp) error { + return x.ServerStream.SendMsg(m) +} + +func _Resource_InvalidateDiscoveryCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InvalidateDiscoveryCacheReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/InvalidateDiscoveryCache", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, req.(*InvalidateDiscoveryCacheReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_FormDataRenderPreview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FormRenderPreviewReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).FormDataRenderPreview(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/FormDataRenderPreview", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).FormDataRenderPreview(ctx, req.(*FormRenderPreviewReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetResFormSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResFormSchemaReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetResFormSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetResFormSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetResFormSchema(ctx, req.(*GetResFormSchemaReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetFormSupportedAPIVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFormSupportedApiVersionsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetFormSupportedAPIVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, req.(*GetFormSupportedApiVersionsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetResSelectItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResSelectItemsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetResSelectItems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetResSelectItems", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetResSelectItems(ctx, req.(*GetResSelectItemsReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Resource_ServiceDesc is the grpc.ServiceDesc for Resource service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Resource_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Resource", + HandlerType: (*ResourceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetK8SResTemplate", + Handler: _Resource_GetK8SResTemplate_Handler, + }, + { + MethodName: "InvalidateDiscoveryCache", + Handler: _Resource_InvalidateDiscoveryCache_Handler, + }, + { + MethodName: "FormDataRenderPreview", + Handler: _Resource_FormDataRenderPreview_Handler, + }, + { + MethodName: "GetResFormSchema", + Handler: _Resource_GetResFormSchema_Handler, + }, + { + MethodName: "GetFormSupportedAPIVersions", + Handler: _Resource_GetFormSupportedAPIVersions_Handler, + }, + { + MethodName: "GetResSelectItems", + Handler: _Resource_GetResSelectItems_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Subscribe", + Handler: _Resource_Subscribe_Handler, + ServerStreams: true, + }, + }, + Metadata: "cluster-resources.proto", +} + +// ViewConfigClient is the client API for ViewConfig service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ViewConfigClient interface { + // 获取视图配置列表 + ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) + // 获取视图配置详情 + GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 创建视图配置 + CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 更新视图配置 + UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 视图重命名 + RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 删除视图配置 + DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type viewConfigClient struct { + cc grpc.ClientConnInterface +} + +func NewViewConfigClient(cc grpc.ClientConnInterface) ViewConfigClient { + return &viewConfigClient{cc} +} + +func (c *viewConfigClient) ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/ListViewConfigs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/GetViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/CreateViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/UpdateViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/RenameViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/DeleteViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ViewConfigServer is the server API for ViewConfig service. +// All implementations must embed UnimplementedViewConfigServer +// for forward compatibility +type ViewConfigServer interface { + // 获取视图配置列表 + ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) + // 获取视图配置详情 + GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) + // 创建视图配置 + CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) + // 更新视图配置 + UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) + // 视图重命名 + RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) + // 删除视图配置 + DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) + mustEmbedUnimplementedViewConfigServer() +} + +// UnimplementedViewConfigServer must be embedded to have forward compatible implementations. +type UnimplementedViewConfigServer struct { +} + +func (UnimplementedViewConfigServer) ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListViewConfigs not implemented") +} +func (UnimplementedViewConfigServer) GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetViewConfig not implemented") +} +func (UnimplementedViewConfigServer) CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateViewConfig not implemented") +} +func (UnimplementedViewConfigServer) UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateViewConfig not implemented") +} +func (UnimplementedViewConfigServer) RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RenameViewConfig not implemented") +} +func (UnimplementedViewConfigServer) DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteViewConfig not implemented") +} +func (UnimplementedViewConfigServer) mustEmbedUnimplementedViewConfigServer() {} + +// UnsafeViewConfigServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ViewConfigServer will +// result in compilation errors. +type UnsafeViewConfigServer interface { + mustEmbedUnimplementedViewConfigServer() +} + +func RegisterViewConfigServer(s grpc.ServiceRegistrar, srv ViewConfigServer) { + s.RegisterService(&ViewConfig_ServiceDesc, srv) +} + +func _ViewConfig_ListViewConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListViewConfigsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).ListViewConfigs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/ListViewConfigs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).ListViewConfigs(ctx, req.(*ListViewConfigsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_GetViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).GetViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/GetViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).GetViewConfig(ctx, req.(*GetViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_CreateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).CreateViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/CreateViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).CreateViewConfig(ctx, req.(*CreateViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_UpdateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).UpdateViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/UpdateViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).UpdateViewConfig(ctx, req.(*UpdateViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_RenameViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RenameViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).RenameViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/RenameViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).RenameViewConfig(ctx, req.(*RenameViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_DeleteViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).DeleteViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/DeleteViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).DeleteViewConfig(ctx, req.(*DeleteViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +// ViewConfig_ServiceDesc is the grpc.ServiceDesc for ViewConfig service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ViewConfig_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.ViewConfig", + HandlerType: (*ViewConfigServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListViewConfigs", + Handler: _ViewConfig_ListViewConfigs_Handler, + }, + { + MethodName: "GetViewConfig", + Handler: _ViewConfig_GetViewConfig_Handler, + }, + { + MethodName: "CreateViewConfig", + Handler: _ViewConfig_CreateViewConfig_Handler, + }, + { + MethodName: "UpdateViewConfig", + Handler: _ViewConfig_UpdateViewConfig_Handler, + }, + { + MethodName: "RenameViewConfig", + Handler: _ViewConfig_RenameViewConfig_Handler, + }, + { + MethodName: "DeleteViewConfig", + Handler: _ViewConfig_DeleteViewConfig_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// MultiClusterClient is the client API for MultiCluster service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type MultiClusterClient interface { + FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) + FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) + MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type multiClusterClient struct { + cc grpc.ClientConnInterface +} + +func NewMultiClusterClient(cc grpc.ClientConnInterface) MultiClusterClient { + return &multiClusterClient{cc} +} + +func (c *multiClusterClient) FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterResource", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *multiClusterClient) FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *multiClusterClient) MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/MultiClusterResourceCount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MultiClusterServer is the server API for MultiCluster service. +// All implementations must embed UnimplementedMultiClusterServer +// for forward compatibility +type MultiClusterServer interface { + FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) + FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) + MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) + mustEmbedUnimplementedMultiClusterServer() +} + +// UnimplementedMultiClusterServer must be embedded to have forward compatible implementations. +type UnimplementedMultiClusterServer struct { +} + +func (UnimplementedMultiClusterServer) FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterResource not implemented") +} +func (UnimplementedMultiClusterServer) FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterCustomResource not implemented") +} +func (UnimplementedMultiClusterServer) MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MultiClusterResourceCount not implemented") +} +func (UnimplementedMultiClusterServer) mustEmbedUnimplementedMultiClusterServer() {} + +// UnsafeMultiClusterServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MultiClusterServer will +// result in compilation errors. +type UnsafeMultiClusterServer interface { + mustEmbedUnimplementedMultiClusterServer() +} + +func RegisterMultiClusterServer(s grpc.ServiceRegistrar, srv MultiClusterServer) { + s.RegisterService(&MultiCluster_ServiceDesc, srv) +} + +func _MultiCluster_FetchMultiClusterResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchMultiClusterResourceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, req.(*FetchMultiClusterResourceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MultiCluster_FetchMultiClusterCustomResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchMultiClusterCustomResourceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, req.(*FetchMultiClusterCustomResourceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MultiCluster_MultiClusterResourceCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MultiClusterResourceCountReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/MultiClusterResourceCount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, req.(*MultiClusterResourceCountReq)) + } + return interceptor(ctx, in, info, handler) +} + +// MultiCluster_ServiceDesc is the grpc.ServiceDesc for MultiCluster service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var MultiCluster_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.MultiCluster", + HandlerType: (*MultiClusterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "FetchMultiClusterResource", + Handler: _MultiCluster_FetchMultiClusterResource_Handler, + }, + { + MethodName: "FetchMultiClusterCustomResource", + Handler: _MultiCluster_FetchMultiClusterCustomResource_Handler, + }, + { + MethodName: "MultiClusterResourceCount", + Handler: _MultiCluster_MultiClusterResourceCount_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} From 043bdae0b61e05257c553a3c79a727e3c841b8b2 Mon Sep 17 00:00:00 2001 From: AlkaidChen <362774405@qq.com> Date: Mon, 23 Oct 2023 14:17:44 +0800 Subject: [PATCH 27/28] feat: publish by labels (#2698) --- .../cmd/config-server/service/publish.go | 32 +- .../cmd/data-service/service/publish.go | 213 +- bcs-services/bcs-bscp/pkg/dal/dao/publish.go | 56 +- .../bcs-bscp/pkg/dal/table/strategy.go | 28 + bcs-services/bcs-bscp/pkg/kit/vas.go | 8 +- .../config-server/config_service.pb.go | 2742 +++++++++-------- .../config-server/config_service.proto | 32 +- .../config-server/config_service_grpc.pb.go | 20 +- .../pkg/protocol/core/group/convert.go | 15 + .../protocol/data-service/data_service.pb.go | 1886 ++++++------ .../protocol/data-service/data_service.proto | 32 +- bcs-services/bcs-bscp/pkg/types/publish.go | 2 +- 12 files changed, 2679 insertions(+), 2387 deletions(-) diff --git a/bcs-services/bcs-bscp/cmd/config-server/service/publish.go b/bcs-services/bcs-bscp/cmd/config-server/service/publish.go index 5a8d3d9bfd..ba4d325808 100644 --- a/bcs-services/bcs-bscp/cmd/config-server/service/publish.go +++ b/bcs-services/bcs-bscp/cmd/config-server/service/publish.go @@ -38,13 +38,15 @@ func (s *Service) Publish(ctx context.Context, req *pbcs.PublishReq) ( } r := &pbds.PublishReq{ - BizId: req.BizId, - AppId: req.AppId, - ReleaseId: req.ReleaseId, - Memo: req.Memo, - All: req.All, - Default: req.Default, - Groups: req.Groups, + BizId: req.BizId, + AppId: req.AppId, + ReleaseId: req.ReleaseId, + Memo: req.Memo, + All: req.All, + GrayPublishMode: req.GrayPublishMode, + Default: req.Default, + Groups: req.Groups, + Labels: req.Labels, } rp, err := s.client.DS.Publish(grpcKit.RpcCtx(), r) if err != nil { @@ -75,13 +77,15 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbcs.Gener } r := &pbds.GenerateReleaseAndPublishReq{ - BizId: req.BizId, - AppId: req.AppId, - ReleaseName: req.ReleaseName, - ReleaseMemo: req.ReleaseMemo, - All: req.All, - Groups: req.Groups, - Variables: req.Variables, + BizId: req.BizId, + AppId: req.AppId, + ReleaseName: req.ReleaseName, + ReleaseMemo: req.ReleaseMemo, + Variables: req.Variables, + All: req.All, + GrayPublishMode: req.GrayPublishMode, + Groups: req.Groups, + Labels: req.Labels, } rp, err := s.client.DS.GenerateReleaseAndPublish(grpcKit.RpcCtx(), r) if err != nil { diff --git a/bcs-services/bcs-bscp/cmd/data-service/service/publish.go b/bcs-services/bcs-bscp/cmd/data-service/service/publish.go index 733e1d57c0..7fb15e295c 100644 --- a/bcs-services/bcs-bscp/cmd/data-service/service/publish.go +++ b/bcs-services/bcs-bscp/cmd/data-service/service/publish.go @@ -16,21 +16,70 @@ import ( "context" "errors" "fmt" + "strings" + "time" + "google.golang.org/protobuf/types/known/structpb" "gorm.io/gorm" "bscp.io/pkg/dal/gen" "bscp.io/pkg/dal/table" "bscp.io/pkg/kit" "bscp.io/pkg/logs" + pbgroup "bscp.io/pkg/protocol/core/group" pbds "bscp.io/pkg/protocol/data-service" + "bscp.io/pkg/runtime/selector" "bscp.io/pkg/types" ) // Publish exec publish strategy. func (s *Service) Publish(ctx context.Context, req *pbds.PublishReq) (*pbds.PublishResp, error) { + grpcKit := kit.FromGrpcContext(ctx) - kt := kit.FromGrpcContext(ctx) + groupIDs := make([]uint32, 0) + tx := s.dao.GenQuery().Begin() + + if !req.All { + if req.GrayPublishMode == "" { + // !NOTE: Compatible with previous pipelined plugins version + req.GrayPublishMode = table.PublishByGroups.String() + } + publishMode := table.GrayPublishMode(req.GrayPublishMode) + if err := publishMode.Validate(); err != nil { + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, err + } + // validate and query group ids. + if publishMode == table.PublishByGroups { + for _, groupID := range req.Groups { + if groupID == 0 { + groupIDs = append(groupIDs, groupID) + continue + } + group, e := s.dao.Group().Get(grpcKit, groupID, req.BizId) + if e != nil { + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, fmt.Errorf("group %d not exist", groupID) + } + groupIDs = append(groupIDs, group.ID) + } + } + if publishMode == table.PublishByLabels { + groupID, err := s.createGroupByLabels(grpcKit, tx, req.BizId, req.AppId, req.Labels) + if err != nil { + logs.Errorf("create group by labels failed, err: %v, rid: %s", err, grpcKit.Rid) + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, err + } + groupIDs = append(groupIDs, groupID) + } + } opt := &types.PublishOption{ BizID: req.BizId, @@ -39,19 +88,22 @@ func (s *Service) Publish(ctx context.Context, req *pbds.PublishReq) (*pbds.Publ All: req.All, Default: req.Default, Memo: req.Memo, - Groups: req.Groups, + Groups: groupIDs, Revision: &table.CreatedRevision{ - Creator: kt.User, + Creator: grpcKit.User, }, } - if err := s.validatePublishGroups(kt, opt); err != nil { + pshID, err := s.dao.Publish().PublishWithTx(grpcKit, tx, opt) + if err != nil { + logs.Errorf("publish strategy failed, err: %v, rid: %s", err, grpcKit.Rid) + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } return nil, err } - - pshID, err := s.dao.Publish().Publish(kt, opt) - if err != nil { - logs.Errorf("publish strategy failed, err: %v, rid: %s", err, kt.Rid) + if err := tx.Commit(); err != nil { + logs.Errorf("commit transaction failed, err: %v, rid: %s", err, grpcKit.Rid) return nil, err } @@ -66,28 +118,15 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener grpcKit := kit.FromGrpcContext(ctx) - groupIDs := make([]uint32, 0) - - // step1: validate and query group ids. - if !req.All { - for _, name := range req.Groups { - group, e := s.dao.Group().GetByName(grpcKit, req.BizId, name) - if e != nil { - return nil, fmt.Errorf("group %s not exist", name) - } - groupIDs = append(groupIDs, group.ID) - } - } - // Note: need to change batch operator to query config item and it's commit. - // step2: query app's all config items. + // query app's all config items. cfgItems, err := s.getAppConfigItems(grpcKit) if err != nil { logs.Errorf("query app config item list failed, err: %v, rid: %s", err, grpcKit.Rid) return nil, err } - // step3: get app template revisions which are template config items + // get app template revisions which are template config items tmplRevisions, err := s.getAppTmplRevisions(grpcKit) if err != nil { logs.Errorf("get app template revisions failed, err: %v, rid: %s", err, grpcKit.Rid) @@ -103,11 +142,50 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener return nil, fmt.Errorf("release name %s already exists", req.ReleaseName) } - // step4: begin transaction to create release and released config item. + groupIDs := make([]uint32, 0) + tx := s.dao.GenQuery().Begin() - // step5: create release. + + if !req.All { + if req.GrayPublishMode == "" { + // !NOTE: Compatible with previous pipelined plugins version + req.GrayPublishMode = table.PublishByGroups.String() + } + publishMode := table.GrayPublishMode(req.GrayPublishMode) + if e := publishMode.Validate(); e != nil { + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, e + } + // validate and query group ids. + if publishMode == table.PublishByGroups { + for _, name := range req.Groups { + group, e := s.dao.Group().GetByName(grpcKit, req.BizId, name) + if e != nil { + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, fmt.Errorf("group %s not exist", name) + } + groupIDs = append(groupIDs, group.ID) + } + } + if publishMode == table.PublishByLabels { + groupID, e := s.createGroupByLabels(grpcKit, tx, req.BizId, req.AppId, req.Labels) + if e != nil { + logs.Errorf("create group by labels failed, err: %v, rid: %s", e, grpcKit.Rid) + if rErr := tx.Rollback(); rErr != nil { + logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) + } + return nil, e + } + groupIDs = append(groupIDs, groupID) + } + } + + // create release. release := &table.Release{ - // Spec: req.Spec.ReleaseSpec(), Spec: &table.ReleaseSpec{ Name: req.ReleaseName, Memo: req.ReleaseMemo, @@ -128,7 +206,7 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener } return nil, err } - // step6: create released hook. + // create released hook. if err = s.createReleasedHook(grpcKit, tx, req.BizId, req.AppId, releaseID); err != nil { logs.Errorf("create released hook failed, err: %v, rid: %s", err, grpcKit.Rid) if rErr := tx.Rollback(); rErr != nil { @@ -137,7 +215,7 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener return nil, err } - // step7: do template and non-template config item related operations for create release. + // do template and non-template config item related operations for create release. if err = s.doConfigItemOperations(grpcKit, req.Variables, tx, release.ID, tmplRevisions, cfgItems); err != nil { if rErr := tx.Rollback(); rErr != nil { logs.Errorf("transaction rollback failed, err: %v, rid: %s", rErr, grpcKit.Rid) @@ -146,7 +224,7 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener return nil, err } - // step8: publish with transaction. + // publish with transaction. kt := kit.FromGrpcContext(ctx) opt := &types.PublishOption{ @@ -160,9 +238,6 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener Creator: kt.User, }, } - if e := s.validatePublishGroups(kt, opt); e != nil { - return nil, e - } pshID, err := s.dao.Publish().PublishWithTx(kt, tx, opt) if err != nil { logs.Errorf("publish strategy failed, err: %v, rid: %s", err, kt.Rid) @@ -172,7 +247,7 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener return nil, err } - // step9: commit transaction. + // commit transaction. if err = tx.Commit(); err != nil { logs.Errorf("commit transaction failed, err: %v, rid: %s", err, kt.Rid) return nil, err @@ -180,6 +255,51 @@ func (s *Service) GenerateReleaseAndPublish(ctx context.Context, req *pbds.Gener return &pbds.PublishResp{PublishedStrategyHistoryId: pshID}, nil } +func (s *Service) createGroupByLabels(grpcKit *kit.Kit, tx *gen.QueryTx, bizID, appID uint32, + labels []*structpb.Struct) (uint32, error) { + timeStr := time.Now().Format("20060102150405.000") + timeStr = strings.ReplaceAll(timeStr, ".", "") + elements := make([]selector.Element, 0) + for _, label := range labels { + element, err := pbgroup.UnmarshalElement(label) + if err != nil { + return 0, fmt.Errorf("unmarshal group label failed, err: %v", err) + } + elements = append(elements, *element) + } + group := table.Group{ + Spec: &table.GroupSpec{ + Name: fmt.Sprintf("g_%s", timeStr), + Public: false, + Mode: table.Custom, + Selector: &selector.Selector{ + LabelsAnd: elements, + }, + }, + Attachment: &table.GroupAttachment{ + BizID: bizID, + }, + Revision: &table.Revision{ + Creator: grpcKit.User, + Reviser: grpcKit.User, + }, + } + groupID, err := s.dao.Group().CreateWithTx(grpcKit, tx, &group) + if err != nil { + return 0, err + } + if err := s.dao.GroupAppBind().BatchCreateWithTx(grpcKit, tx, []*table.GroupAppBind{ + { + GroupID: groupID, + AppID: appID, + BizID: bizID, + }, + }); err != nil { + return 0, err + } + return groupID, nil +} + func (s *Service) createReleasedHook(grpcKit *kit.Kit, tx *gen.QueryTx, bizID, appID, releaseID uint32) error { pre, err := s.dao.ReleasedHook().Get(grpcKit, bizID, appID, 0, table.PreHook) if err == nil { @@ -207,30 +327,3 @@ func (s *Service) createReleasedHook(grpcKit *kit.Kit, tx *gen.QueryTx, bizID, a } return nil } - -func (s *Service) validatePublishGroups(kt *kit.Kit, opt *types.PublishOption) error { - for _, groupID := range opt.Groups { - // frontend would set groupID 0 as default. - if groupID == 0 { - opt.Default = true - continue - } - group, e := s.dao.Group().Get(kt, groupID, opt.BizID) - if e != nil { - if e == gorm.ErrRecordNotFound { - return fmt.Errorf("group %d not exists", groupID) - } - return e - } - if group.Spec.Public { - continue - } - if _, e := s.dao.GroupAppBind().Get(kt, groupID, opt.AppID, opt.BizID); e != nil { - if e == gorm.ErrRecordNotFound { - return fmt.Errorf("group %d not bind app %d", groupID, opt.AppID) - } - return e - } - } - return nil -} diff --git a/bcs-services/bcs-bscp/pkg/dal/dao/publish.go b/bcs-services/bcs-bscp/pkg/dal/dao/publish.go index 6d533954ea..92549f946c 100644 --- a/bcs-services/bcs-bscp/pkg/dal/dao/publish.go +++ b/bcs-services/bcs-bscp/pkg/dal/dao/publish.go @@ -14,8 +14,11 @@ package dao import ( "errors" + "fmt" "time" + "gorm.io/gorm" + "bscp.io/pkg/dal/gen" "bscp.io/pkg/dal/table" "bscp.io/pkg/kit" @@ -59,12 +62,18 @@ func (dao *pubDao) Publish(kit *kit.Kit, opt *types.PublishOption) (uint32, erro // 手动事务处理 tx := dao.genQ.Begin() + if err := dao.validatePublishGroups(kit, tx, opt); err != nil { + if e := tx.Rollback(); e != nil { + logs.Errorf("rollback publish transaction failed, err: %v, rid: %s", e, kit.Rid) + } + return 0, err + } stgID, err := func() (uint32, error) { groups := make([]*table.Group, 0, len(opt.Groups)) var err error if len(opt.Groups) > 0 { - m := dao.genQ.Group - q := dao.genQ.Group.WithContext(kit.Ctx) + m := tx.Group + q := tx.Group.WithContext(kit.Ctx) groups, err = q.Where(m.ID.In(opt.Groups...), m.BizID.Eq(opt.BizID)).Find() if err != nil { logs.Errorf("get to be published groups(%s) failed, err: %v, rid: %s", @@ -77,7 +86,6 @@ func (dao *pubDao) Publish(kit *kit.Kit, opt *types.PublishOption) (uint32, erro if err != nil { if e := tx.Rollback(); e != nil { logs.Errorf("rollback publish transaction failed, err: %v, rid: %s", e, kit.Rid) - return 0, e } return 0, err } @@ -89,6 +97,37 @@ func (dao *pubDao) Publish(kit *kit.Kit, opt *types.PublishOption) (uint32, erro return stgID, nil } +func (dao *pubDao) validatePublishGroups(kt *kit.Kit, tx *gen.QueryTx, opt *types.PublishOption) error { + for _, groupID := range opt.Groups { + // frontend would set groupID 0 as default. + if groupID == 0 { + opt.Default = true + continue + } + gm := tx.Group + group, e := gm.WithContext(kt.Ctx).Where(gm.ID.Eq(groupID), gm.BizID.Eq(opt.BizID)).Take() + if e != nil { + if e == gorm.ErrRecordNotFound { + return fmt.Errorf("group %d not exists", groupID) + } + return e + } + if group.Spec.Public { + continue + } + + gam := tx.GroupAppBind + if _, e := gam.WithContext(kt.Ctx).Where( + gam.GroupID.Eq(groupID), gam.AppID.Eq(opt.AppID), gam.BizID.Eq(opt.BizID)).Take(); e != nil { + if e == gorm.ErrRecordNotFound { + return fmt.Errorf("group %d not bind app %d", groupID, opt.AppID) + } + return e + } + } + return nil +} + func genStrategy(kit *kit.Kit, opt *types.PublishOption, stgID uint32, groups []*table.Group) *table.Strategy { now := time.Now() return &table.Strategy{ @@ -127,11 +166,18 @@ func (dao *pubDao) PublishWithTx(kit *kit.Kit, tx *gen.QueryTx, opt *types.Publi return 0, err } + if err := dao.validatePublishGroups(kit, tx, opt); err != nil { + if e := tx.Rollback(); e != nil { + logs.Errorf("rollback publish transaction failed, err: %v, rid: %s", e, kit.Rid) + } + return 0, err + } + groups := make([]*table.Group, 0, len(opt.Groups)) var err error if len(opt.Groups) > 0 { - m := dao.genQ.Group - q := dao.genQ.Group.WithContext(kit.Ctx) + m := tx.Group + q := tx.Group.WithContext(kit.Ctx) groups, err = q.Where(m.ID.In(opt.Groups...), m.BizID.Eq(opt.BizID)).Find() if err != nil { logs.Errorf("get to be published groups(%s) failed, err: %v, rid: %s", diff --git a/bcs-services/bcs-bscp/pkg/dal/table/strategy.go b/bcs-services/bcs-bscp/pkg/dal/table/strategy.go index 3bbb834fd0..bc7672f652 100644 --- a/bcs-services/bcs-bscp/pkg/dal/table/strategy.go +++ b/bcs-services/bcs-bscp/pkg/dal/table/strategy.go @@ -31,6 +31,34 @@ const ( maxNamespaceStrategiesLimitForApp = 200 ) +const ( + // PublishByGroups means that publish given groups. + PublishByGroups GrayPublishMode = "publish_by_groups" + + // PublishByLabels means that publish by given labels. + PublishByLabels GrayPublishMode = "publish_by_labels" +) + +// GrayPublishMode defines gray publish mode. +type GrayPublishMode string + +// String returns gray publish mode string. +func (s GrayPublishMode) String() string { + return string(s) +} + +// Validate gray publish mode type. +func (s GrayPublishMode) Validate() error { + switch s { + case PublishByGroups: + case PublishByLabels: + default: + return fmt.Errorf("unsupported publish mode: %s", s) + } + + return nil +} + // ValidateAppStrategyNumber verify whether the current number of app strategies have reached the maximum. func ValidateAppStrategyNumber(count uint32, mode AppMode) error { switch mode { diff --git a/bcs-services/bcs-bscp/pkg/kit/vas.go b/bcs-services/bcs-bscp/pkg/kit/vas.go index 5f4a2dc05e..686dadeb24 100644 --- a/bcs-services/bcs-bscp/pkg/kit/vas.go +++ b/bcs-services/bcs-bscp/pkg/kit/vas.go @@ -15,6 +15,7 @@ package kit import ( "context" "errors" + "sync" "time" "google.golang.org/grpc/metadata" @@ -28,6 +29,7 @@ func NewVas() *Vas { return &Vas{ Rid: uuid.UUID(), Ctx: context.TODO(), + Wg: sync.WaitGroup{}, } } @@ -54,6 +56,7 @@ func OutgoingVas(pairs ...map[string]string) *Vas { return &Vas{ Rid: rid, Ctx: ctx, + Wg: sync.WaitGroup{}, } } @@ -65,10 +68,12 @@ type Vas struct { Rid string // Ctx is request context. Ctx context.Context + // Wg is wait group. + Wg sync.WaitGroup } // Validate the vas is valid or not. -func (v Vas) Validate() error { +func (v *Vas) Validate() error { if v.Ctx == nil { return errors.New("vas context is nil") } @@ -87,6 +92,7 @@ func (v *Vas) WithTimeout(timeout time.Duration) (*Vas, context.CancelFunc) { child := &Vas{ Rid: v.Rid, Ctx: ctx, + Wg: sync.WaitGroup{}, } return child, cancel diff --git a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.pb.go b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.pb.go index da29004c61..ce95b845f1 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.pb.go +++ b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.pb.go @@ -13382,13 +13382,15 @@ type PublishReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` - AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - ReleaseId uint32 `protobuf:"varint,3,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` - Memo string `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` - All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` - Default bool `protobuf:"varint,6,opt,name=default,proto3" json:"default,omitempty"` - Groups []uint32 `protobuf:"varint,7,rep,packed,name=groups,proto3" json:"groups,omitempty"` + BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` + AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + ReleaseId uint32 `protobuf:"varint,3,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` + Memo string `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` + All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` + GrayPublishMode string `protobuf:"bytes,6,opt,name=gray_publish_mode,json=grayPublishMode,proto3" json:"gray_publish_mode,omitempty"` + Default bool `protobuf:"varint,7,opt,name=default,proto3" json:"default,omitempty"` + Groups []uint32 `protobuf:"varint,8,rep,packed,name=groups,proto3" json:"groups,omitempty"` + Labels []*structpb.Struct `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"` } func (x *PublishReq) Reset() { @@ -13458,6 +13460,13 @@ func (x *PublishReq) GetAll() bool { return false } +func (x *PublishReq) GetGrayPublishMode() string { + if x != nil { + return x.GrayPublishMode + } + return "" +} + func (x *PublishReq) GetDefault() bool { if x != nil { return x.Default @@ -13472,18 +13481,27 @@ func (x *PublishReq) GetGroups() []uint32 { return nil } +func (x *PublishReq) GetLabels() []*structpb.Struct { + if x != nil { + return x.Labels + } + return nil +} + type GenerateReleaseAndPublishReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` - AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - ReleaseName string `protobuf:"bytes,3,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` - ReleaseMemo string `protobuf:"bytes,4,opt,name=release_memo,json=releaseMemo,proto3" json:"release_memo,omitempty"` - All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` - Groups []string `protobuf:"bytes,6,rep,name=groups,proto3" json:"groups,omitempty"` - Variables []*template_variable.TemplateVariableSpec `protobuf:"bytes,7,rep,name=variables,proto3" json:"variables,omitempty"` + BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` + AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + ReleaseName string `protobuf:"bytes,3,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` + ReleaseMemo string `protobuf:"bytes,4,opt,name=release_memo,json=releaseMemo,proto3" json:"release_memo,omitempty"` + Variables []*template_variable.TemplateVariableSpec `protobuf:"bytes,5,rep,name=variables,proto3" json:"variables,omitempty"` + All bool `protobuf:"varint,6,opt,name=all,proto3" json:"all,omitempty"` + GrayPublishMode string `protobuf:"bytes,7,opt,name=gray_publish_mode,json=grayPublishMode,proto3" json:"gray_publish_mode,omitempty"` + Groups []string `protobuf:"bytes,8,rep,name=groups,proto3" json:"groups,omitempty"` + Labels []*structpb.Struct `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"` } func (x *GenerateReleaseAndPublishReq) Reset() { @@ -13546,6 +13564,13 @@ func (x *GenerateReleaseAndPublishReq) GetReleaseMemo() string { return "" } +func (x *GenerateReleaseAndPublishReq) GetVariables() []*template_variable.TemplateVariableSpec { + if x != nil { + return x.Variables + } + return nil +} + func (x *GenerateReleaseAndPublishReq) GetAll() bool { if x != nil { return x.All @@ -13553,6 +13578,13 @@ func (x *GenerateReleaseAndPublishReq) GetAll() bool { return false } +func (x *GenerateReleaseAndPublishReq) GetGrayPublishMode() string { + if x != nil { + return x.GrayPublishMode + } + return "" +} + func (x *GenerateReleaseAndPublishReq) GetGroups() []string { if x != nil { return x.Groups @@ -13560,9 +13592,9 @@ func (x *GenerateReleaseAndPublishReq) GetGroups() []string { return nil } -func (x *GenerateReleaseAndPublishReq) GetVariables() []*template_variable.TemplateVariableSpec { +func (x *GenerateReleaseAndPublishReq) GetLabels() []*structpb.Struct { if x != nil { - return x.Variables + return x.Labels } return nil } @@ -16283,7 +16315,7 @@ var file_config_service_proto_rawDesc = []byte{ 0x65, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x7a, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x50, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x7a, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, @@ -16291,1187 +16323,1199 @@ var file_config_service_proto_rawDesc = []byte{ 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xf6, - 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, - 0x15, 0x0a, 0x06, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x62, 0x69, 0x7a, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, - 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4d, - 0x65, 0x6d, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x38, 0x0a, - 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x74, 0x76, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x0b, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x32, 0x8c, 0x90, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x32, 0x22, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, - 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3e, 0x1a, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, - 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, - 0x77, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x69, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, - 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, - 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x70, 0x2f, - 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, - 0x69, 0x64, 0x7d, 0x12, 0x71, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, - 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, - 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, - 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x61, 0x70, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x63, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x12, 0x7c, 0x0a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x69, 0x73, - 0x74, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x10, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, - 0x9e, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x41, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x01, 0x2a, - 0x12, 0xb7, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x66, 0x1a, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, - 0x69, 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, - 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xb4, 0x01, 0x0a, 0x10, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x2a, 0x0a, 0x11, + 0x67, 0x72, 0x61, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x79, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xd3, 0x02, 0x0a, 0x1c, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, + 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, + 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, + 0x7a, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x6d, 0x6f, + 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x74, 0x76, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x2a, 0x0a, 0x11, + 0x67, 0x72, 0x61, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x79, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x22, 0x2f, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x0b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, + 0x64, 0x32, 0x8c, 0x90, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x22, 0x2d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, + 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x1a, 0x39, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, + 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x77, 0x0a, 0x09, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2f, 0x61, + 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0x69, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x12, 0x0f, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, + 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x67, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, + 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x71, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, + 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0x63, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, + 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x61, 0x70, 0x70, 0x73, 0x12, 0x7c, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, + 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, 0x79, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x61, 0x70, 0x70, 0x2f, + 0x61, 0x70, 0x70, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, + 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, + 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, + 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xb7, 0x01, 0x0a, 0x10, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, - 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x1a, 0x61, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, - 0x6d, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, - 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x12, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, + 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xb4, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x5f, + 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x5f, 0x12, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0xb4, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, + 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x38, 0x12, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0xb4, 0x01, 0x0a, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x3a, + 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x22, 0x45, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x19, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x36, 0x2f, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, + 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x73, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, + 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x65, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, - 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, - 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x4a, 0x22, 0x45, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, - 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, - 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x15, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, + 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x12, 0x65, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, - 0x12, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, - 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, - 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x29, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x6c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, - 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, - 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0x5f, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x12, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, + 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, + 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x12, 0x63, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, - 0x6b, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, - 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x12, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6b, 0x73, 0x12, 0x6c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, + 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x63, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, + 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, + 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, + 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, + 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x90, + 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, + 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x2a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x4a, 0x2a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, - 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, - 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x13, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x1a, 0x50, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x91, 0x01, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x68, 0x72, 0x2e, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa4, - 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x1a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, - 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, - 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x12, 0x53, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x52, 0x1a, 0x50, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x12, 0x91, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x68, 0x72, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, + 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa4, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x4d, 0x1a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, + 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, - 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x92, - 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, - 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, - 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, - 0x6f, 0x6b, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, - 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, - 0x12, 0x9b, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x2a, 0x3f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, - 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9e, - 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x1a, 0x3f, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, - 0x84, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, + 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x55, 0x12, 0x53, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x8a, 0x01, + 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, + 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x2a, 0x3f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9e, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x1a, 0x3f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x12, 0x79, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x62, 0x69, 0x7a, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x16, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x22, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x96, 0x01, 0x0a, + 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, + 0x79, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x22, 0x37, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x12, 0x10, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x62, 0x69, 0x7a, - 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x26, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, - 0x01, 0x2a, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, - 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x22, - 0x37, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, + 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x99, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, + 0x2a, 0x12, 0xa4, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x2a, + 0x57, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x73, - 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x99, 0x01, 0x0a, 0x0e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa4, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5f, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x2a, 0x57, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa5, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x51, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x2a, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa5, - 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x2a, 0x49, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x5c, 0x1a, 0x57, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, - 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, - 0x12, 0x93, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x54, 0x6d, - 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, - 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, - 0x22, 0x5e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x64, 0x5f, - 0x74, 0x6f, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, - 0x3a, 0x01, 0x2a, 0x12, 0xce, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, - 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, - 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, - 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x68, 0x22, 0x63, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, - 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, 0x31, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, - 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xba, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1e, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1f, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x12, 0x58, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, - 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x12, 0x69, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xd2, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6f, 0x22, 0x6a, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xcc, 0x01, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, + 0x12, 0xa7, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x1a, 0x57, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xae, 0x01, 0x0a, 0x1a, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x3a, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6c, 0x69, 0x73, - 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xc9, 0x01, 0x0a, 0x1e, + 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x93, 0x01, 0x0a, 0x0d, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x51, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x12, 0xba, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, + 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x54, + 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x22, 0x5e, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, + 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xce, 0x01, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x68, 0x22, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, + 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xba, + 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x5a, 0x12, 0x58, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, + 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x71, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x12, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x12, 0xd2, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6f, 0x22, 0x6a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xcc, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xae, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, + 0x49, 0x44, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, + 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xc9, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, + 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x12, 0x27, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, - 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, + 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x54, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x62, + 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, + 0x2a, 0x12, 0xa6, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x61, 0x2a, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, + 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x6a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x1a, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xa6, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, - 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x2a, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x1a, - 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x01, 0x2a, 0x12, 0xa0, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x12, 0x4d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1c, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, - 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, - 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, - 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, - 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, - 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, - 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x12, - 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, - 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, - 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, - 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x7a, 0x12, 0xa9, 0x01, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x22, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xb3, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xa0, 0x01, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x4f, 0x12, 0x4d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, + 0x12, 0x93, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, + 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, + 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, + 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, + 0x3a, 0x01, 0x2a, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, + 0x69, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, + 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, + 0x66, 0x5f, 0x62, 0x69, 0x7a, 0x12, 0xa9, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x40, 0x22, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, + 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, + 0x2a, 0x12, 0xb3, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x2a, 0x48, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, + 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, + 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb6, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x4a, 0x2a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4d, 0x1a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, - 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb6, 0x01, - 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, - 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x1a, 0x48, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, + 0x12, 0xa3, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xa3, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, - 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, - 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xaa, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, - 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, - 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, - 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x21, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x2a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, - 0x12, 0x52, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, - 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, - 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x71, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x12, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x44, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, - 0x12, 0xd2, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x12, 0x52, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, + 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, + 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe9, + 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x66, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x1a, 0x5b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, + 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, + 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x12, + 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, + 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x1b, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, + 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x66, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x1a, + 0x5b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, + 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, + 0xbb, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x2a, 0x56, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, - 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x2a, 0x56, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, - 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x65, 0x74, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, - 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, - 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x22, 0x4a, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, - 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0xb5, 0x01, 0x0a, 0x13, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, - 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x22, 0x56, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x3a, 0x01, 0x2a, 0x12, 0xef, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7c, 0x22, 0x77, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xc2, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, - 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, - 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x22, 0x5a, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xdc, 0x01, 0x0a, 0x18, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, - 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x79, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, 0x12, 0x71, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x12, 0xb5, 0x01, + 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x55, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x22, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, - 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x16, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0xd4, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0xb5, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x5b, 0x22, 0x56, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xef, 0x01, + 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x7c, 0x22, 0x77, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, - 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, + 0xc2, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x22, 0x5a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xdc, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, + 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, + 0x12, 0x71, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, + 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1f, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0xa1, 0x02, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, + 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x15, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, + 0x53, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, + 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, + 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, + 0x12, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, + 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6c, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xa1, 0x02, 0x0a, 0x20, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x29, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9e, 0x01, 0x12, + 0x9b, 0x01, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x99, 0x02, + 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, + 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x22, 0xa3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9c, 0x01, 0x12, 0x99, 0x01, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, + 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xee, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, + 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x2a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x9e, 0x01, 0x12, 0x9b, 0x01, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x81, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, + 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, + 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xea, 0x01, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, + 0x29, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, + 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, 0x77, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, - 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x99, 0x02, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa3, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x9c, 0x01, 0x12, 0x99, 0x01, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, - 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x61, + 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0xee, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, - 0x24, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x81, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0xea, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, - 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x65, 0x74, 0x73, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xe5, 0x01, - 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x23, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, 0x77, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, - 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0xf6, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, + 0xf6, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x80, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x7a, 0x12, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, - 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, - 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x96, - 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7a, 0x12, 0x78, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x96, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x2e, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x01, + 0x2a, 0x12, 0xaa, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x2a, 0x45, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xad, + 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x22, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4a, 0x1a, 0x45, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xaa, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x2a, 0x45, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, - 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, + 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x90, + 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x12, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x1a, 0x45, 0x2f, 0x61, 0x70, 0x69, + 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1e, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, - 0x22, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xac, 0x01, 0x0a, 0x17, 0x45, - 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x45, 0x78, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, - 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x16, 0x47, 0x65, + 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xac, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x12, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, + 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, - 0x47, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, - 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, + 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, + 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, + 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, + 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x12, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, + 0x12, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, + 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0xa4, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, + 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x47, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x1a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, + 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, + 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, + 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x44, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x1a, 0x3c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, - 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, - 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9b, 0x01, 0x0a, - 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x70, + 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x12, 0x52, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x1c, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, - 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x54, 0x12, 0x52, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, - 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x01, - 0x2a, 0x12, 0x71, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x35, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x74, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x1a, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, - 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0d, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x12, 0x69, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x14, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x7a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x32, 0x12, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, + 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x74, + 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x32, 0x1a, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x5f, - 0x61, 0x70, 0x70, 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x0e, 0x2e, 0x70, 0x62, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, - 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, - 0x10, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x22, 0x66, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2f, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x2f, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x63, 0x73, - 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x36, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, - 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x7a, - 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x7e, 0x0a, 0x10, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1a, - 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x2a, - 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x81, 0x01, 0x0a, 0x10, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, - 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, - 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, - 0x1a, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x9f, - 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, - 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x12, 0x7a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, + 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x7b, + 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x9d, + 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x12, 0x7d, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x17, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x12, 0x3a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa1, 0x01, + 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x71, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x22, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x2f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, + 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, + 0x70, 0x70, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, + 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, + 0x2a, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, + 0x22, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, - 0x12, 0xa4, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x44, 0x1a, 0x3f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x2f, 0x7b, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x29, 0x5a, 0x27, 0x62, 0x73, 0x63, 0x70, 0x2e, - 0x69, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3b, 0x70, 0x62, - 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x7a, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x73, + 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x63, + 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, + 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, + 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, + 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x7e, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x2a, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, + 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x12, 0x81, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x63, 0x73, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x1a, 0x29, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, + 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x9f, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, + 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x2f, + 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x15, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, + 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x63, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x1a, 0x3f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x69, + 0x7a, 0x5f, 0x69, 0x64, 0x2f, 0x7b, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x2f, 0x7b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3a, 0x01, + 0x2a, 0x42, 0x29, 0x5a, 0x27, 0x62, 0x73, 0x63, 0x70, 0x2e, 0x69, 0x6f, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3b, 0x70, 0x62, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -17836,240 +17880,242 @@ var file_config_service_proto_depIdxs = []int32{ 227, // 67: pbcs.ListAllGroupsResp.details:type_name -> pbcs.ListAllGroupsResp.ListAllGroupsData 229, // 68: pbcs.ListAppGroupsResp.details:type_name -> pbcs.ListAppGroupsResp.ListAppGroupsData 230, // 69: pbcs.ListGroupReleasedAppsResp.details:type_name -> pbcs.ListGroupReleasedAppsResp.ListGroupReleasedAppsData - 239, // 70: pbcs.GenerateReleaseAndPublishReq.variables:type_name -> pbtv.TemplateVariableSpec - 272, // 71: pbcs.ListHooksResp.Detail.hook:type_name -> pbhook.Hook - 273, // 72: pbcs.ListHookRevisionsResp.ListHookRevisionsData.hook_revision:type_name -> pbhr.HookRevision - 228, // 73: pbcs.ListAllGroupsResp.ListAllGroupsData.bind_apps:type_name -> pbcs.ListAllGroupsResp.ListAllGroupsData.BindApp - 271, // 74: pbcs.ListAllGroupsResp.ListAllGroupsData.selector:type_name -> google.protobuf.Struct - 271, // 75: pbcs.ListAppGroupsResp.ListAppGroupsData.old_selector:type_name -> google.protobuf.Struct - 271, // 76: pbcs.ListAppGroupsResp.ListAppGroupsData.new_selector:type_name -> google.protobuf.Struct - 14, // 77: pbcs.Config.CreateApp:input_type -> pbcs.CreateAppReq - 16, // 78: pbcs.Config.UpdateApp:input_type -> pbcs.UpdateAppReq - 18, // 79: pbcs.Config.DeleteApp:input_type -> pbcs.DeleteAppReq - 20, // 80: pbcs.Config.GetApp:input_type -> pbcs.GetAppReq - 21, // 81: pbcs.Config.GetAppByName:input_type -> pbcs.GetAppByNameReq - 22, // 82: pbcs.Config.ListAppsRest:input_type -> pbcs.ListAppsRestReq - 23, // 83: pbcs.Config.ListAppsBySpaceRest:input_type -> pbcs.ListAppsBySpaceRestReq - 25, // 84: pbcs.Config.CreateConfigItem:input_type -> pbcs.CreateConfigItemReq - 26, // 85: pbcs.Config.BatchUpsertConfigItems:input_type -> pbcs.BatchUpsertConfigItemsReq - 29, // 86: pbcs.Config.UpdateConfigItem:input_type -> pbcs.UpdateConfigItemReq - 31, // 87: pbcs.Config.DeleteConfigItem:input_type -> pbcs.DeleteConfigItemReq - 33, // 88: pbcs.Config.GetConfigItem:input_type -> pbcs.GetConfigItemReq - 35, // 89: pbcs.Config.GetReleasedConfigItem:input_type -> pbcs.GetReleasedConfigItemReq - 37, // 90: pbcs.Config.ListConfigItems:input_type -> pbcs.ListConfigItemsReq - 39, // 91: pbcs.Config.ListReleasedConfigItems:input_type -> pbcs.ListReleasedConfigItemsReq - 41, // 92: pbcs.Config.ListConfigItemCount:input_type -> pbcs.ListConfigItemCountReq - 43, // 93: pbcs.Config.UpdateConfigHook:input_type -> pbcs.UpdateConfigHookReq - 45, // 94: pbcs.Config.CreateRelease:input_type -> pbcs.CreateReleaseReq - 47, // 95: pbcs.Config.ListReleases:input_type -> pbcs.ListReleasesReq - 49, // 96: pbcs.Config.GetReleaseByName:input_type -> pbcs.GetReleaseByNameReq - 50, // 97: pbcs.Config.CreateHook:input_type -> pbcs.CreateHookReq - 52, // 98: pbcs.Config.DeleteHook:input_type -> pbcs.DeleteHookReq - 54, // 99: pbcs.Config.ListHooks:input_type -> pbcs.ListHooksReq - 56, // 100: pbcs.Config.ListHookTags:input_type -> pbcs.ListHookTagsReq - 66, // 101: pbcs.Config.GetHook:input_type -> pbcs.GetHookReq - 58, // 102: pbcs.Config.CreateHookRevision:input_type -> pbcs.CreateHookRevisionReq - 60, // 103: pbcs.Config.ListHookRevisions:input_type -> pbcs.ListHookRevisionsReq - 62, // 104: pbcs.Config.DeleteHookRevision:input_type -> pbcs.DeleteHookRevisionReq - 64, // 105: pbcs.Config.PublishHookRevision:input_type -> pbcs.PublishHookRevisionReq - 69, // 106: pbcs.Config.GetHookRevision:input_type -> pbcs.GetHookRevisionReq - 70, // 107: pbcs.Config.UpdateHookRevision:input_type -> pbcs.UpdateHookRevisionReq - 74, // 108: pbcs.Config.ListHookReferences:input_type -> pbcs.ListHookReferencesReq - 72, // 109: pbcs.Config.ListHookRevisionReferences:input_type -> pbcs.ListHookRevisionReferencesReq - 76, // 110: pbcs.Config.GetReleaseHook:input_type -> pbcs.GetReleaseHookReq - 78, // 111: pbcs.Config.CreateTemplateSpace:input_type -> pbcs.CreateTemplateSpaceReq - 82, // 112: pbcs.Config.DeleteTemplateSpace:input_type -> pbcs.DeleteTemplateSpaceReq - 80, // 113: pbcs.Config.UpdateTemplateSpace:input_type -> pbcs.UpdateTemplateSpaceReq - 84, // 114: pbcs.Config.ListTemplateSpaces:input_type -> pbcs.ListTemplateSpacesReq - 274, // 115: pbcs.Config.GetAllBizsOfTmplSpaces:input_type -> pbbase.EmptyReq - 87, // 116: pbcs.Config.CreateDefaultTmplSpace:input_type -> pbcs.CreateDefaultTmplSpaceReq - 89, // 117: pbcs.Config.ListTmplSpacesByIDs:input_type -> pbcs.ListTmplSpacesByIDsReq - 91, // 118: pbcs.Config.CreateTemplate:input_type -> pbcs.CreateTemplateReq - 95, // 119: pbcs.Config.DeleteTemplate:input_type -> pbcs.DeleteTemplateReq - 97, // 120: pbcs.Config.BatchDeleteTemplate:input_type -> pbcs.BatchDeleteTemplateReq - 93, // 121: pbcs.Config.UpdateTemplate:input_type -> pbcs.UpdateTemplateReq - 99, // 122: pbcs.Config.ListTemplates:input_type -> pbcs.ListTemplatesReq - 101, // 123: pbcs.Config.AddTmplsToTmplSets:input_type -> pbcs.AddTmplsToTmplSetsReq - 103, // 124: pbcs.Config.DeleteTmplsFromTmplSets:input_type -> pbcs.DeleteTmplsFromTmplSetsReq - 105, // 125: pbcs.Config.ListTemplatesByIDs:input_type -> pbcs.ListTemplatesByIDsReq - 107, // 126: pbcs.Config.ListTemplatesNotBound:input_type -> pbcs.ListTemplatesNotBoundReq - 109, // 127: pbcs.Config.ListTmplsOfTmplSet:input_type -> pbcs.ListTmplsOfTmplSetReq - 111, // 128: pbcs.Config.CreateTemplateRevision:input_type -> pbcs.CreateTemplateRevisionReq - 113, // 129: pbcs.Config.ListTemplateRevisions:input_type -> pbcs.ListTemplateRevisionsReq - 117, // 130: pbcs.Config.ListTemplateRevisionsByIDs:input_type -> pbcs.ListTemplateRevisionsByIDsReq - 119, // 131: pbcs.Config.ListTmplRevisionNamesByTmplIDs:input_type -> pbcs.ListTmplRevisionNamesByTmplIDsReq - 121, // 132: pbcs.Config.CreateTemplateSet:input_type -> pbcs.CreateTemplateSetReq - 125, // 133: pbcs.Config.DeleteTemplateSet:input_type -> pbcs.DeleteTemplateSetReq - 123, // 134: pbcs.Config.UpdateTemplateSet:input_type -> pbcs.UpdateTemplateSetReq - 127, // 135: pbcs.Config.ListTemplateSets:input_type -> pbcs.ListTemplateSetsReq - 129, // 136: pbcs.Config.ListAppTemplateSets:input_type -> pbcs.ListAppTemplateSetsReq - 131, // 137: pbcs.Config.ListTemplateSetsByIDs:input_type -> pbcs.ListTemplateSetsByIDsReq - 133, // 138: pbcs.Config.ListTmplSetsOfBiz:input_type -> pbcs.ListTmplSetsOfBizReq - 135, // 139: pbcs.Config.CreateAppTemplateBinding:input_type -> pbcs.CreateAppTemplateBindingReq - 139, // 140: pbcs.Config.DeleteAppTemplateBinding:input_type -> pbcs.DeleteAppTemplateBindingReq - 137, // 141: pbcs.Config.UpdateAppTemplateBinding:input_type -> pbcs.UpdateAppTemplateBindingReq - 141, // 142: pbcs.Config.ListAppTemplateBindings:input_type -> pbcs.ListAppTemplateBindingsReq - 143, // 143: pbcs.Config.ListAppBoundTmplRevisions:input_type -> pbcs.ListAppBoundTmplRevisionsReq - 145, // 144: pbcs.Config.ListReleasedAppBoundTmplRevisions:input_type -> pbcs.ListReleasedAppBoundTmplRevisionsReq - 147, // 145: pbcs.Config.GetReleasedAppBoundTmplRevision:input_type -> pbcs.GetReleasedAppBoundTmplRevisionReq - 149, // 146: pbcs.Config.UpdateAppBoundTmplRevisions:input_type -> pbcs.UpdateAppBoundTmplRevisionsReq - 151, // 147: pbcs.Config.DeleteAppBoundTmplSets:input_type -> pbcs.DeleteAppBoundTmplSetsReq - 153, // 148: pbcs.Config.CheckAppTemplateBinding:input_type -> pbcs.CheckAppTemplateBindingReq - 155, // 149: pbcs.Config.ListTmplBoundCounts:input_type -> pbcs.ListTmplBoundCountsReq - 157, // 150: pbcs.Config.ListTmplRevisionBoundCounts:input_type -> pbcs.ListTmplRevisionBoundCountsReq - 159, // 151: pbcs.Config.ListTmplSetBoundCounts:input_type -> pbcs.ListTmplSetBoundCountsReq - 161, // 152: pbcs.Config.ListTmplBoundUnnamedApps:input_type -> pbcs.ListTmplBoundUnnamedAppsReq - 163, // 153: pbcs.Config.ListTmplBoundNamedApps:input_type -> pbcs.ListTmplBoundNamedAppsReq - 165, // 154: pbcs.Config.ListTmplBoundTmplSets:input_type -> pbcs.ListTmplBoundTmplSetsReq - 167, // 155: pbcs.Config.ListMultiTmplBoundTmplSets:input_type -> pbcs.ListMultiTmplBoundTmplSetsReq - 169, // 156: pbcs.Config.ListTmplRevisionBoundUnnamedApps:input_type -> pbcs.ListTmplRevisionBoundUnnamedAppsReq - 171, // 157: pbcs.Config.ListTmplRevisionBoundNamedApps:input_type -> pbcs.ListTmplRevisionBoundNamedAppsReq - 173, // 158: pbcs.Config.ListTmplSetBoundUnnamedApps:input_type -> pbcs.ListTmplSetBoundUnnamedAppsReq - 175, // 159: pbcs.Config.ListMultiTmplSetBoundUnnamedApps:input_type -> pbcs.ListMultiTmplSetBoundUnnamedAppsReq - 177, // 160: pbcs.Config.ListTmplSetBoundNamedApps:input_type -> pbcs.ListTmplSetBoundNamedAppsReq - 179, // 161: pbcs.Config.ListLatestTmplBoundUnnamedApps:input_type -> pbcs.ListLatestTmplBoundUnnamedAppsReq - 181, // 162: pbcs.Config.CreateTemplateVariable:input_type -> pbcs.CreateTemplateVariableReq - 185, // 163: pbcs.Config.DeleteTemplateVariable:input_type -> pbcs.DeleteTemplateVariableReq - 183, // 164: pbcs.Config.UpdateTemplateVariable:input_type -> pbcs.UpdateTemplateVariableReq - 187, // 165: pbcs.Config.ListTemplateVariables:input_type -> pbcs.ListTemplateVariablesReq - 189, // 166: pbcs.Config.ImportTemplateVariables:input_type -> pbcs.ImportTemplateVariablesReq - 191, // 167: pbcs.Config.ExtractAppTmplVariables:input_type -> pbcs.ExtractAppTmplVariablesReq - 193, // 168: pbcs.Config.GetAppTmplVariableRefs:input_type -> pbcs.GetAppTmplVariableRefsReq - 195, // 169: pbcs.Config.GetReleasedAppTmplVariableRefs:input_type -> pbcs.GetReleasedAppTmplVariableRefsReq - 197, // 170: pbcs.Config.UpdateAppTmplVariables:input_type -> pbcs.UpdateAppTmplVariablesReq - 199, // 171: pbcs.Config.ListAppTmplVariables:input_type -> pbcs.ListAppTmplVariablesReq - 201, // 172: pbcs.Config.ListReleasedAppTmplVariables:input_type -> pbcs.ListReleasedAppTmplVariablesReq - 203, // 173: pbcs.Config.CreateGroup:input_type -> pbcs.CreateGroupReq - 207, // 174: pbcs.Config.DeleteGroup:input_type -> pbcs.DeleteGroupReq - 205, // 175: pbcs.Config.UpdateGroup:input_type -> pbcs.UpdateGroupReq - 209, // 176: pbcs.Config.ListAllGroups:input_type -> pbcs.ListAllGroupsReq - 211, // 177: pbcs.Config.ListAppGroups:input_type -> pbcs.ListAppGroupsReq - 213, // 178: pbcs.Config.ListGroupReleasedApps:input_type -> pbcs.ListGroupReleasedAppsReq - 215, // 179: pbcs.Config.GetGroupByName:input_type -> pbcs.GetGroupByNameReq - 216, // 180: pbcs.Config.Publish:input_type -> pbcs.PublishReq - 217, // 181: pbcs.Config.GenerateReleaseAndPublish:input_type -> pbcs.GenerateReleaseAndPublishReq - 12, // 182: pbcs.Config.CreateCredentials:input_type -> pbcs.CreateCredentialReq - 10, // 183: pbcs.Config.ListCredentials:input_type -> pbcs.ListCredentialsReq - 6, // 184: pbcs.Config.DeleteCredential:input_type -> pbcs.DeleteCredentialsReq - 8, // 185: pbcs.Config.UpdateCredential:input_type -> pbcs.UpdateCredentialsReq - 2, // 186: pbcs.Config.ListCredentialScopes:input_type -> pbcs.ListCredentialScopesReq - 0, // 187: pbcs.Config.UpdateCredentialScope:input_type -> pbcs.UpdateCredentialScopeReq - 15, // 188: pbcs.Config.CreateApp:output_type -> pbcs.CreateAppResp - 17, // 189: pbcs.Config.UpdateApp:output_type -> pbcs.UpdateAppResp - 19, // 190: pbcs.Config.DeleteApp:output_type -> pbcs.DeleteAppResp - 234, // 191: pbcs.Config.GetApp:output_type -> pbapp.App - 234, // 192: pbcs.Config.GetAppByName:output_type -> pbapp.App - 24, // 193: pbcs.Config.ListAppsRest:output_type -> pbcs.ListAppsResp - 24, // 194: pbcs.Config.ListAppsBySpaceRest:output_type -> pbcs.ListAppsResp - 28, // 195: pbcs.Config.CreateConfigItem:output_type -> pbcs.CreateConfigItemResp - 27, // 196: pbcs.Config.BatchUpsertConfigItems:output_type -> pbcs.BatchUpsertConfigItemsResp - 30, // 197: pbcs.Config.UpdateConfigItem:output_type -> pbcs.UpdateConfigItemResp - 32, // 198: pbcs.Config.DeleteConfigItem:output_type -> pbcs.DeleteConfigItemResp - 34, // 199: pbcs.Config.GetConfigItem:output_type -> pbcs.GetConfigItemResp - 36, // 200: pbcs.Config.GetReleasedConfigItem:output_type -> pbcs.GetReleasedConfigItemResp - 38, // 201: pbcs.Config.ListConfigItems:output_type -> pbcs.ListConfigItemsResp - 40, // 202: pbcs.Config.ListReleasedConfigItems:output_type -> pbcs.ListReleasedConfigItemsResp - 42, // 203: pbcs.Config.ListConfigItemCount:output_type -> pbcs.ListConfigItemCountResp - 44, // 204: pbcs.Config.UpdateConfigHook:output_type -> pbcs.UpdateConfigHookResp - 46, // 205: pbcs.Config.CreateRelease:output_type -> pbcs.CreateReleaseResp - 48, // 206: pbcs.Config.ListReleases:output_type -> pbcs.ListReleasesResp - 240, // 207: pbcs.Config.GetReleaseByName:output_type -> pbrelease.Release - 51, // 208: pbcs.Config.CreateHook:output_type -> pbcs.CreateHookResp - 53, // 209: pbcs.Config.DeleteHook:output_type -> pbcs.DeleteHookResp - 55, // 210: pbcs.Config.ListHooks:output_type -> pbcs.ListHooksResp - 57, // 211: pbcs.Config.ListHookTags:output_type -> pbcs.ListHookTagsResp - 67, // 212: pbcs.Config.GetHook:output_type -> pbcs.GetHookResp - 59, // 213: pbcs.Config.CreateHookRevision:output_type -> pbcs.CreateHookRevisionResp - 61, // 214: pbcs.Config.ListHookRevisions:output_type -> pbcs.ListHookRevisionsResp - 63, // 215: pbcs.Config.DeleteHookRevision:output_type -> pbcs.DeleteHookRevisionResp - 65, // 216: pbcs.Config.PublishHookRevision:output_type -> pbcs.PublishHookRevisionResp - 273, // 217: pbcs.Config.GetHookRevision:output_type -> pbhr.HookRevision - 71, // 218: pbcs.Config.UpdateHookRevision:output_type -> pbcs.UpdateHookRevisionResp - 75, // 219: pbcs.Config.ListHookReferences:output_type -> pbcs.ListHookReferencesResp - 73, // 220: pbcs.Config.ListHookRevisionReferences:output_type -> pbcs.ListHookRevisionReferencesResp - 77, // 221: pbcs.Config.GetReleaseHook:output_type -> pbcs.GetReleaseHookResp - 79, // 222: pbcs.Config.CreateTemplateSpace:output_type -> pbcs.CreateTemplateSpaceResp - 83, // 223: pbcs.Config.DeleteTemplateSpace:output_type -> pbcs.DeleteTemplateSpaceResp - 81, // 224: pbcs.Config.UpdateTemplateSpace:output_type -> pbcs.UpdateTemplateSpaceResp - 85, // 225: pbcs.Config.ListTemplateSpaces:output_type -> pbcs.ListTemplateSpacesResp - 86, // 226: pbcs.Config.GetAllBizsOfTmplSpaces:output_type -> pbcs.GetAllBizsOfTmplSpacesResp - 88, // 227: pbcs.Config.CreateDefaultTmplSpace:output_type -> pbcs.CreateDefaultTmplSpaceResp - 90, // 228: pbcs.Config.ListTmplSpacesByIDs:output_type -> pbcs.ListTmplSpacesByIDsResp - 92, // 229: pbcs.Config.CreateTemplate:output_type -> pbcs.CreateTemplateResp - 96, // 230: pbcs.Config.DeleteTemplate:output_type -> pbcs.DeleteTemplateResp - 98, // 231: pbcs.Config.BatchDeleteTemplate:output_type -> pbcs.BatchDeleteTemplateResp - 94, // 232: pbcs.Config.UpdateTemplate:output_type -> pbcs.UpdateTemplateResp - 100, // 233: pbcs.Config.ListTemplates:output_type -> pbcs.ListTemplatesResp - 102, // 234: pbcs.Config.AddTmplsToTmplSets:output_type -> pbcs.AddTmplsToTmplSetsResp - 104, // 235: pbcs.Config.DeleteTmplsFromTmplSets:output_type -> pbcs.DeleteTmplsFromTmplSetsResp - 106, // 236: pbcs.Config.ListTemplatesByIDs:output_type -> pbcs.ListTemplatesByIDsResp - 108, // 237: pbcs.Config.ListTemplatesNotBound:output_type -> pbcs.ListTemplatesNotBoundResp - 110, // 238: pbcs.Config.ListTmplsOfTmplSet:output_type -> pbcs.ListTmplsOfTmplSetResp - 112, // 239: pbcs.Config.CreateTemplateRevision:output_type -> pbcs.CreateTemplateRevisionResp - 114, // 240: pbcs.Config.ListTemplateRevisions:output_type -> pbcs.ListTemplateRevisionsResp - 118, // 241: pbcs.Config.ListTemplateRevisionsByIDs:output_type -> pbcs.ListTemplateRevisionsByIDsResp - 120, // 242: pbcs.Config.ListTmplRevisionNamesByTmplIDs:output_type -> pbcs.ListTmplRevisionNamesByTmplIDsResp - 122, // 243: pbcs.Config.CreateTemplateSet:output_type -> pbcs.CreateTemplateSetResp - 126, // 244: pbcs.Config.DeleteTemplateSet:output_type -> pbcs.DeleteTemplateSetResp - 124, // 245: pbcs.Config.UpdateTemplateSet:output_type -> pbcs.UpdateTemplateSetResp - 128, // 246: pbcs.Config.ListTemplateSets:output_type -> pbcs.ListTemplateSetsResp - 130, // 247: pbcs.Config.ListAppTemplateSets:output_type -> pbcs.ListAppTemplateSetsResp - 132, // 248: pbcs.Config.ListTemplateSetsByIDs:output_type -> pbcs.ListTemplateSetsByIDsResp - 134, // 249: pbcs.Config.ListTmplSetsOfBiz:output_type -> pbcs.ListTmplSetsOfBizResp - 136, // 250: pbcs.Config.CreateAppTemplateBinding:output_type -> pbcs.CreateAppTemplateBindingResp - 140, // 251: pbcs.Config.DeleteAppTemplateBinding:output_type -> pbcs.DeleteAppTemplateBindingResp - 138, // 252: pbcs.Config.UpdateAppTemplateBinding:output_type -> pbcs.UpdateAppTemplateBindingResp - 142, // 253: pbcs.Config.ListAppTemplateBindings:output_type -> pbcs.ListAppTemplateBindingsResp - 144, // 254: pbcs.Config.ListAppBoundTmplRevisions:output_type -> pbcs.ListAppBoundTmplRevisionsResp - 146, // 255: pbcs.Config.ListReleasedAppBoundTmplRevisions:output_type -> pbcs.ListReleasedAppBoundTmplRevisionsResp - 148, // 256: pbcs.Config.GetReleasedAppBoundTmplRevision:output_type -> pbcs.GetReleasedAppBoundTmplRevisionResp - 150, // 257: pbcs.Config.UpdateAppBoundTmplRevisions:output_type -> pbcs.UpdateAppBoundTmplRevisionsResp - 152, // 258: pbcs.Config.DeleteAppBoundTmplSets:output_type -> pbcs.DeleteAppBoundTmplSetsResp - 154, // 259: pbcs.Config.CheckAppTemplateBinding:output_type -> pbcs.CheckAppTemplateBindingResp - 156, // 260: pbcs.Config.ListTmplBoundCounts:output_type -> pbcs.ListTmplBoundCountsResp - 158, // 261: pbcs.Config.ListTmplRevisionBoundCounts:output_type -> pbcs.ListTmplRevisionBoundCountsResp - 160, // 262: pbcs.Config.ListTmplSetBoundCounts:output_type -> pbcs.ListTmplSetBoundCountsResp - 162, // 263: pbcs.Config.ListTmplBoundUnnamedApps:output_type -> pbcs.ListTmplBoundUnnamedAppsResp - 164, // 264: pbcs.Config.ListTmplBoundNamedApps:output_type -> pbcs.ListTmplBoundNamedAppsResp - 166, // 265: pbcs.Config.ListTmplBoundTmplSets:output_type -> pbcs.ListTmplBoundTmplSetsResp - 168, // 266: pbcs.Config.ListMultiTmplBoundTmplSets:output_type -> pbcs.ListMultiTmplBoundTmplSetsResp - 170, // 267: pbcs.Config.ListTmplRevisionBoundUnnamedApps:output_type -> pbcs.ListTmplRevisionBoundUnnamedAppsResp - 172, // 268: pbcs.Config.ListTmplRevisionBoundNamedApps:output_type -> pbcs.ListTmplRevisionBoundNamedAppsResp - 174, // 269: pbcs.Config.ListTmplSetBoundUnnamedApps:output_type -> pbcs.ListTmplSetBoundUnnamedAppsResp - 176, // 270: pbcs.Config.ListMultiTmplSetBoundUnnamedApps:output_type -> pbcs.ListMultiTmplSetBoundUnnamedAppsResp - 178, // 271: pbcs.Config.ListTmplSetBoundNamedApps:output_type -> pbcs.ListTmplSetBoundNamedAppsResp - 180, // 272: pbcs.Config.ListLatestTmplBoundUnnamedApps:output_type -> pbcs.ListLatestTmplBoundUnnamedAppsResp - 182, // 273: pbcs.Config.CreateTemplateVariable:output_type -> pbcs.CreateTemplateVariableResp - 186, // 274: pbcs.Config.DeleteTemplateVariable:output_type -> pbcs.DeleteTemplateVariableResp - 184, // 275: pbcs.Config.UpdateTemplateVariable:output_type -> pbcs.UpdateTemplateVariableResp - 188, // 276: pbcs.Config.ListTemplateVariables:output_type -> pbcs.ListTemplateVariablesResp - 190, // 277: pbcs.Config.ImportTemplateVariables:output_type -> pbcs.ImportTemplateVariablesResp - 192, // 278: pbcs.Config.ExtractAppTmplVariables:output_type -> pbcs.ExtractAppTmplVariablesResp - 194, // 279: pbcs.Config.GetAppTmplVariableRefs:output_type -> pbcs.GetAppTmplVariableRefsResp - 196, // 280: pbcs.Config.GetReleasedAppTmplVariableRefs:output_type -> pbcs.GetReleasedAppTmplVariableRefsResp - 198, // 281: pbcs.Config.UpdateAppTmplVariables:output_type -> pbcs.UpdateAppTmplVariablesResp - 200, // 282: pbcs.Config.ListAppTmplVariables:output_type -> pbcs.ListAppTmplVariablesResp - 202, // 283: pbcs.Config.ListReleasedAppTmplVariables:output_type -> pbcs.ListReleasedAppTmplVariablesResp - 204, // 284: pbcs.Config.CreateGroup:output_type -> pbcs.CreateGroupResp - 208, // 285: pbcs.Config.DeleteGroup:output_type -> pbcs.DeleteGroupResp - 206, // 286: pbcs.Config.UpdateGroup:output_type -> pbcs.UpdateGroupResp - 210, // 287: pbcs.Config.ListAllGroups:output_type -> pbcs.ListAllGroupsResp - 212, // 288: pbcs.Config.ListAppGroups:output_type -> pbcs.ListAppGroupsResp - 214, // 289: pbcs.Config.ListGroupReleasedApps:output_type -> pbcs.ListGroupReleasedAppsResp - 275, // 290: pbcs.Config.GetGroupByName:output_type -> pbgroup.Group - 219, // 291: pbcs.Config.Publish:output_type -> pbcs.PublishResp - 219, // 292: pbcs.Config.GenerateReleaseAndPublish:output_type -> pbcs.PublishResp - 13, // 293: pbcs.Config.CreateCredentials:output_type -> pbcs.CreateCredentialResp - 11, // 294: pbcs.Config.ListCredentials:output_type -> pbcs.ListCredentialsResp - 7, // 295: pbcs.Config.DeleteCredential:output_type -> pbcs.DeleteCredentialsResp - 9, // 296: pbcs.Config.UpdateCredential:output_type -> pbcs.UpdateCredentialsResp - 3, // 297: pbcs.Config.ListCredentialScopes:output_type -> pbcs.ListCredentialScopesResp - 1, // 298: pbcs.Config.UpdateCredentialScope:output_type -> pbcs.UpdateCredentialScopeResp - 188, // [188:299] is the sub-list for method output_type - 77, // [77:188] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 271, // 70: pbcs.PublishReq.labels:type_name -> google.protobuf.Struct + 239, // 71: pbcs.GenerateReleaseAndPublishReq.variables:type_name -> pbtv.TemplateVariableSpec + 271, // 72: pbcs.GenerateReleaseAndPublishReq.labels:type_name -> google.protobuf.Struct + 272, // 73: pbcs.ListHooksResp.Detail.hook:type_name -> pbhook.Hook + 273, // 74: pbcs.ListHookRevisionsResp.ListHookRevisionsData.hook_revision:type_name -> pbhr.HookRevision + 228, // 75: pbcs.ListAllGroupsResp.ListAllGroupsData.bind_apps:type_name -> pbcs.ListAllGroupsResp.ListAllGroupsData.BindApp + 271, // 76: pbcs.ListAllGroupsResp.ListAllGroupsData.selector:type_name -> google.protobuf.Struct + 271, // 77: pbcs.ListAppGroupsResp.ListAppGroupsData.old_selector:type_name -> google.protobuf.Struct + 271, // 78: pbcs.ListAppGroupsResp.ListAppGroupsData.new_selector:type_name -> google.protobuf.Struct + 14, // 79: pbcs.Config.CreateApp:input_type -> pbcs.CreateAppReq + 16, // 80: pbcs.Config.UpdateApp:input_type -> pbcs.UpdateAppReq + 18, // 81: pbcs.Config.DeleteApp:input_type -> pbcs.DeleteAppReq + 20, // 82: pbcs.Config.GetApp:input_type -> pbcs.GetAppReq + 21, // 83: pbcs.Config.GetAppByName:input_type -> pbcs.GetAppByNameReq + 22, // 84: pbcs.Config.ListAppsRest:input_type -> pbcs.ListAppsRestReq + 23, // 85: pbcs.Config.ListAppsBySpaceRest:input_type -> pbcs.ListAppsBySpaceRestReq + 25, // 86: pbcs.Config.CreateConfigItem:input_type -> pbcs.CreateConfigItemReq + 26, // 87: pbcs.Config.BatchUpsertConfigItems:input_type -> pbcs.BatchUpsertConfigItemsReq + 29, // 88: pbcs.Config.UpdateConfigItem:input_type -> pbcs.UpdateConfigItemReq + 31, // 89: pbcs.Config.DeleteConfigItem:input_type -> pbcs.DeleteConfigItemReq + 33, // 90: pbcs.Config.GetConfigItem:input_type -> pbcs.GetConfigItemReq + 35, // 91: pbcs.Config.GetReleasedConfigItem:input_type -> pbcs.GetReleasedConfigItemReq + 37, // 92: pbcs.Config.ListConfigItems:input_type -> pbcs.ListConfigItemsReq + 39, // 93: pbcs.Config.ListReleasedConfigItems:input_type -> pbcs.ListReleasedConfigItemsReq + 41, // 94: pbcs.Config.ListConfigItemCount:input_type -> pbcs.ListConfigItemCountReq + 43, // 95: pbcs.Config.UpdateConfigHook:input_type -> pbcs.UpdateConfigHookReq + 45, // 96: pbcs.Config.CreateRelease:input_type -> pbcs.CreateReleaseReq + 47, // 97: pbcs.Config.ListReleases:input_type -> pbcs.ListReleasesReq + 49, // 98: pbcs.Config.GetReleaseByName:input_type -> pbcs.GetReleaseByNameReq + 50, // 99: pbcs.Config.CreateHook:input_type -> pbcs.CreateHookReq + 52, // 100: pbcs.Config.DeleteHook:input_type -> pbcs.DeleteHookReq + 54, // 101: pbcs.Config.ListHooks:input_type -> pbcs.ListHooksReq + 56, // 102: pbcs.Config.ListHookTags:input_type -> pbcs.ListHookTagsReq + 66, // 103: pbcs.Config.GetHook:input_type -> pbcs.GetHookReq + 58, // 104: pbcs.Config.CreateHookRevision:input_type -> pbcs.CreateHookRevisionReq + 60, // 105: pbcs.Config.ListHookRevisions:input_type -> pbcs.ListHookRevisionsReq + 62, // 106: pbcs.Config.DeleteHookRevision:input_type -> pbcs.DeleteHookRevisionReq + 64, // 107: pbcs.Config.PublishHookRevision:input_type -> pbcs.PublishHookRevisionReq + 69, // 108: pbcs.Config.GetHookRevision:input_type -> pbcs.GetHookRevisionReq + 70, // 109: pbcs.Config.UpdateHookRevision:input_type -> pbcs.UpdateHookRevisionReq + 74, // 110: pbcs.Config.ListHookReferences:input_type -> pbcs.ListHookReferencesReq + 72, // 111: pbcs.Config.ListHookRevisionReferences:input_type -> pbcs.ListHookRevisionReferencesReq + 76, // 112: pbcs.Config.GetReleaseHook:input_type -> pbcs.GetReleaseHookReq + 78, // 113: pbcs.Config.CreateTemplateSpace:input_type -> pbcs.CreateTemplateSpaceReq + 82, // 114: pbcs.Config.DeleteTemplateSpace:input_type -> pbcs.DeleteTemplateSpaceReq + 80, // 115: pbcs.Config.UpdateTemplateSpace:input_type -> pbcs.UpdateTemplateSpaceReq + 84, // 116: pbcs.Config.ListTemplateSpaces:input_type -> pbcs.ListTemplateSpacesReq + 274, // 117: pbcs.Config.GetAllBizsOfTmplSpaces:input_type -> pbbase.EmptyReq + 87, // 118: pbcs.Config.CreateDefaultTmplSpace:input_type -> pbcs.CreateDefaultTmplSpaceReq + 89, // 119: pbcs.Config.ListTmplSpacesByIDs:input_type -> pbcs.ListTmplSpacesByIDsReq + 91, // 120: pbcs.Config.CreateTemplate:input_type -> pbcs.CreateTemplateReq + 95, // 121: pbcs.Config.DeleteTemplate:input_type -> pbcs.DeleteTemplateReq + 97, // 122: pbcs.Config.BatchDeleteTemplate:input_type -> pbcs.BatchDeleteTemplateReq + 93, // 123: pbcs.Config.UpdateTemplate:input_type -> pbcs.UpdateTemplateReq + 99, // 124: pbcs.Config.ListTemplates:input_type -> pbcs.ListTemplatesReq + 101, // 125: pbcs.Config.AddTmplsToTmplSets:input_type -> pbcs.AddTmplsToTmplSetsReq + 103, // 126: pbcs.Config.DeleteTmplsFromTmplSets:input_type -> pbcs.DeleteTmplsFromTmplSetsReq + 105, // 127: pbcs.Config.ListTemplatesByIDs:input_type -> pbcs.ListTemplatesByIDsReq + 107, // 128: pbcs.Config.ListTemplatesNotBound:input_type -> pbcs.ListTemplatesNotBoundReq + 109, // 129: pbcs.Config.ListTmplsOfTmplSet:input_type -> pbcs.ListTmplsOfTmplSetReq + 111, // 130: pbcs.Config.CreateTemplateRevision:input_type -> pbcs.CreateTemplateRevisionReq + 113, // 131: pbcs.Config.ListTemplateRevisions:input_type -> pbcs.ListTemplateRevisionsReq + 117, // 132: pbcs.Config.ListTemplateRevisionsByIDs:input_type -> pbcs.ListTemplateRevisionsByIDsReq + 119, // 133: pbcs.Config.ListTmplRevisionNamesByTmplIDs:input_type -> pbcs.ListTmplRevisionNamesByTmplIDsReq + 121, // 134: pbcs.Config.CreateTemplateSet:input_type -> pbcs.CreateTemplateSetReq + 125, // 135: pbcs.Config.DeleteTemplateSet:input_type -> pbcs.DeleteTemplateSetReq + 123, // 136: pbcs.Config.UpdateTemplateSet:input_type -> pbcs.UpdateTemplateSetReq + 127, // 137: pbcs.Config.ListTemplateSets:input_type -> pbcs.ListTemplateSetsReq + 129, // 138: pbcs.Config.ListAppTemplateSets:input_type -> pbcs.ListAppTemplateSetsReq + 131, // 139: pbcs.Config.ListTemplateSetsByIDs:input_type -> pbcs.ListTemplateSetsByIDsReq + 133, // 140: pbcs.Config.ListTmplSetsOfBiz:input_type -> pbcs.ListTmplSetsOfBizReq + 135, // 141: pbcs.Config.CreateAppTemplateBinding:input_type -> pbcs.CreateAppTemplateBindingReq + 139, // 142: pbcs.Config.DeleteAppTemplateBinding:input_type -> pbcs.DeleteAppTemplateBindingReq + 137, // 143: pbcs.Config.UpdateAppTemplateBinding:input_type -> pbcs.UpdateAppTemplateBindingReq + 141, // 144: pbcs.Config.ListAppTemplateBindings:input_type -> pbcs.ListAppTemplateBindingsReq + 143, // 145: pbcs.Config.ListAppBoundTmplRevisions:input_type -> pbcs.ListAppBoundTmplRevisionsReq + 145, // 146: pbcs.Config.ListReleasedAppBoundTmplRevisions:input_type -> pbcs.ListReleasedAppBoundTmplRevisionsReq + 147, // 147: pbcs.Config.GetReleasedAppBoundTmplRevision:input_type -> pbcs.GetReleasedAppBoundTmplRevisionReq + 149, // 148: pbcs.Config.UpdateAppBoundTmplRevisions:input_type -> pbcs.UpdateAppBoundTmplRevisionsReq + 151, // 149: pbcs.Config.DeleteAppBoundTmplSets:input_type -> pbcs.DeleteAppBoundTmplSetsReq + 153, // 150: pbcs.Config.CheckAppTemplateBinding:input_type -> pbcs.CheckAppTemplateBindingReq + 155, // 151: pbcs.Config.ListTmplBoundCounts:input_type -> pbcs.ListTmplBoundCountsReq + 157, // 152: pbcs.Config.ListTmplRevisionBoundCounts:input_type -> pbcs.ListTmplRevisionBoundCountsReq + 159, // 153: pbcs.Config.ListTmplSetBoundCounts:input_type -> pbcs.ListTmplSetBoundCountsReq + 161, // 154: pbcs.Config.ListTmplBoundUnnamedApps:input_type -> pbcs.ListTmplBoundUnnamedAppsReq + 163, // 155: pbcs.Config.ListTmplBoundNamedApps:input_type -> pbcs.ListTmplBoundNamedAppsReq + 165, // 156: pbcs.Config.ListTmplBoundTmplSets:input_type -> pbcs.ListTmplBoundTmplSetsReq + 167, // 157: pbcs.Config.ListMultiTmplBoundTmplSets:input_type -> pbcs.ListMultiTmplBoundTmplSetsReq + 169, // 158: pbcs.Config.ListTmplRevisionBoundUnnamedApps:input_type -> pbcs.ListTmplRevisionBoundUnnamedAppsReq + 171, // 159: pbcs.Config.ListTmplRevisionBoundNamedApps:input_type -> pbcs.ListTmplRevisionBoundNamedAppsReq + 173, // 160: pbcs.Config.ListTmplSetBoundUnnamedApps:input_type -> pbcs.ListTmplSetBoundUnnamedAppsReq + 175, // 161: pbcs.Config.ListMultiTmplSetBoundUnnamedApps:input_type -> pbcs.ListMultiTmplSetBoundUnnamedAppsReq + 177, // 162: pbcs.Config.ListTmplSetBoundNamedApps:input_type -> pbcs.ListTmplSetBoundNamedAppsReq + 179, // 163: pbcs.Config.ListLatestTmplBoundUnnamedApps:input_type -> pbcs.ListLatestTmplBoundUnnamedAppsReq + 181, // 164: pbcs.Config.CreateTemplateVariable:input_type -> pbcs.CreateTemplateVariableReq + 185, // 165: pbcs.Config.DeleteTemplateVariable:input_type -> pbcs.DeleteTemplateVariableReq + 183, // 166: pbcs.Config.UpdateTemplateVariable:input_type -> pbcs.UpdateTemplateVariableReq + 187, // 167: pbcs.Config.ListTemplateVariables:input_type -> pbcs.ListTemplateVariablesReq + 189, // 168: pbcs.Config.ImportTemplateVariables:input_type -> pbcs.ImportTemplateVariablesReq + 191, // 169: pbcs.Config.ExtractAppTmplVariables:input_type -> pbcs.ExtractAppTmplVariablesReq + 193, // 170: pbcs.Config.GetAppTmplVariableRefs:input_type -> pbcs.GetAppTmplVariableRefsReq + 195, // 171: pbcs.Config.GetReleasedAppTmplVariableRefs:input_type -> pbcs.GetReleasedAppTmplVariableRefsReq + 197, // 172: pbcs.Config.UpdateAppTmplVariables:input_type -> pbcs.UpdateAppTmplVariablesReq + 199, // 173: pbcs.Config.ListAppTmplVariables:input_type -> pbcs.ListAppTmplVariablesReq + 201, // 174: pbcs.Config.ListReleasedAppTmplVariables:input_type -> pbcs.ListReleasedAppTmplVariablesReq + 203, // 175: pbcs.Config.CreateGroup:input_type -> pbcs.CreateGroupReq + 207, // 176: pbcs.Config.DeleteGroup:input_type -> pbcs.DeleteGroupReq + 205, // 177: pbcs.Config.UpdateGroup:input_type -> pbcs.UpdateGroupReq + 209, // 178: pbcs.Config.ListAllGroups:input_type -> pbcs.ListAllGroupsReq + 211, // 179: pbcs.Config.ListAppGroups:input_type -> pbcs.ListAppGroupsReq + 213, // 180: pbcs.Config.ListGroupReleasedApps:input_type -> pbcs.ListGroupReleasedAppsReq + 215, // 181: pbcs.Config.GetGroupByName:input_type -> pbcs.GetGroupByNameReq + 216, // 182: pbcs.Config.Publish:input_type -> pbcs.PublishReq + 217, // 183: pbcs.Config.GenerateReleaseAndPublish:input_type -> pbcs.GenerateReleaseAndPublishReq + 12, // 184: pbcs.Config.CreateCredentials:input_type -> pbcs.CreateCredentialReq + 10, // 185: pbcs.Config.ListCredentials:input_type -> pbcs.ListCredentialsReq + 6, // 186: pbcs.Config.DeleteCredential:input_type -> pbcs.DeleteCredentialsReq + 8, // 187: pbcs.Config.UpdateCredential:input_type -> pbcs.UpdateCredentialsReq + 2, // 188: pbcs.Config.ListCredentialScopes:input_type -> pbcs.ListCredentialScopesReq + 0, // 189: pbcs.Config.UpdateCredentialScope:input_type -> pbcs.UpdateCredentialScopeReq + 15, // 190: pbcs.Config.CreateApp:output_type -> pbcs.CreateAppResp + 17, // 191: pbcs.Config.UpdateApp:output_type -> pbcs.UpdateAppResp + 19, // 192: pbcs.Config.DeleteApp:output_type -> pbcs.DeleteAppResp + 234, // 193: pbcs.Config.GetApp:output_type -> pbapp.App + 234, // 194: pbcs.Config.GetAppByName:output_type -> pbapp.App + 24, // 195: pbcs.Config.ListAppsRest:output_type -> pbcs.ListAppsResp + 24, // 196: pbcs.Config.ListAppsBySpaceRest:output_type -> pbcs.ListAppsResp + 28, // 197: pbcs.Config.CreateConfigItem:output_type -> pbcs.CreateConfigItemResp + 27, // 198: pbcs.Config.BatchUpsertConfigItems:output_type -> pbcs.BatchUpsertConfigItemsResp + 30, // 199: pbcs.Config.UpdateConfigItem:output_type -> pbcs.UpdateConfigItemResp + 32, // 200: pbcs.Config.DeleteConfigItem:output_type -> pbcs.DeleteConfigItemResp + 34, // 201: pbcs.Config.GetConfigItem:output_type -> pbcs.GetConfigItemResp + 36, // 202: pbcs.Config.GetReleasedConfigItem:output_type -> pbcs.GetReleasedConfigItemResp + 38, // 203: pbcs.Config.ListConfigItems:output_type -> pbcs.ListConfigItemsResp + 40, // 204: pbcs.Config.ListReleasedConfigItems:output_type -> pbcs.ListReleasedConfigItemsResp + 42, // 205: pbcs.Config.ListConfigItemCount:output_type -> pbcs.ListConfigItemCountResp + 44, // 206: pbcs.Config.UpdateConfigHook:output_type -> pbcs.UpdateConfigHookResp + 46, // 207: pbcs.Config.CreateRelease:output_type -> pbcs.CreateReleaseResp + 48, // 208: pbcs.Config.ListReleases:output_type -> pbcs.ListReleasesResp + 240, // 209: pbcs.Config.GetReleaseByName:output_type -> pbrelease.Release + 51, // 210: pbcs.Config.CreateHook:output_type -> pbcs.CreateHookResp + 53, // 211: pbcs.Config.DeleteHook:output_type -> pbcs.DeleteHookResp + 55, // 212: pbcs.Config.ListHooks:output_type -> pbcs.ListHooksResp + 57, // 213: pbcs.Config.ListHookTags:output_type -> pbcs.ListHookTagsResp + 67, // 214: pbcs.Config.GetHook:output_type -> pbcs.GetHookResp + 59, // 215: pbcs.Config.CreateHookRevision:output_type -> pbcs.CreateHookRevisionResp + 61, // 216: pbcs.Config.ListHookRevisions:output_type -> pbcs.ListHookRevisionsResp + 63, // 217: pbcs.Config.DeleteHookRevision:output_type -> pbcs.DeleteHookRevisionResp + 65, // 218: pbcs.Config.PublishHookRevision:output_type -> pbcs.PublishHookRevisionResp + 273, // 219: pbcs.Config.GetHookRevision:output_type -> pbhr.HookRevision + 71, // 220: pbcs.Config.UpdateHookRevision:output_type -> pbcs.UpdateHookRevisionResp + 75, // 221: pbcs.Config.ListHookReferences:output_type -> pbcs.ListHookReferencesResp + 73, // 222: pbcs.Config.ListHookRevisionReferences:output_type -> pbcs.ListHookRevisionReferencesResp + 77, // 223: pbcs.Config.GetReleaseHook:output_type -> pbcs.GetReleaseHookResp + 79, // 224: pbcs.Config.CreateTemplateSpace:output_type -> pbcs.CreateTemplateSpaceResp + 83, // 225: pbcs.Config.DeleteTemplateSpace:output_type -> pbcs.DeleteTemplateSpaceResp + 81, // 226: pbcs.Config.UpdateTemplateSpace:output_type -> pbcs.UpdateTemplateSpaceResp + 85, // 227: pbcs.Config.ListTemplateSpaces:output_type -> pbcs.ListTemplateSpacesResp + 86, // 228: pbcs.Config.GetAllBizsOfTmplSpaces:output_type -> pbcs.GetAllBizsOfTmplSpacesResp + 88, // 229: pbcs.Config.CreateDefaultTmplSpace:output_type -> pbcs.CreateDefaultTmplSpaceResp + 90, // 230: pbcs.Config.ListTmplSpacesByIDs:output_type -> pbcs.ListTmplSpacesByIDsResp + 92, // 231: pbcs.Config.CreateTemplate:output_type -> pbcs.CreateTemplateResp + 96, // 232: pbcs.Config.DeleteTemplate:output_type -> pbcs.DeleteTemplateResp + 98, // 233: pbcs.Config.BatchDeleteTemplate:output_type -> pbcs.BatchDeleteTemplateResp + 94, // 234: pbcs.Config.UpdateTemplate:output_type -> pbcs.UpdateTemplateResp + 100, // 235: pbcs.Config.ListTemplates:output_type -> pbcs.ListTemplatesResp + 102, // 236: pbcs.Config.AddTmplsToTmplSets:output_type -> pbcs.AddTmplsToTmplSetsResp + 104, // 237: pbcs.Config.DeleteTmplsFromTmplSets:output_type -> pbcs.DeleteTmplsFromTmplSetsResp + 106, // 238: pbcs.Config.ListTemplatesByIDs:output_type -> pbcs.ListTemplatesByIDsResp + 108, // 239: pbcs.Config.ListTemplatesNotBound:output_type -> pbcs.ListTemplatesNotBoundResp + 110, // 240: pbcs.Config.ListTmplsOfTmplSet:output_type -> pbcs.ListTmplsOfTmplSetResp + 112, // 241: pbcs.Config.CreateTemplateRevision:output_type -> pbcs.CreateTemplateRevisionResp + 114, // 242: pbcs.Config.ListTemplateRevisions:output_type -> pbcs.ListTemplateRevisionsResp + 118, // 243: pbcs.Config.ListTemplateRevisionsByIDs:output_type -> pbcs.ListTemplateRevisionsByIDsResp + 120, // 244: pbcs.Config.ListTmplRevisionNamesByTmplIDs:output_type -> pbcs.ListTmplRevisionNamesByTmplIDsResp + 122, // 245: pbcs.Config.CreateTemplateSet:output_type -> pbcs.CreateTemplateSetResp + 126, // 246: pbcs.Config.DeleteTemplateSet:output_type -> pbcs.DeleteTemplateSetResp + 124, // 247: pbcs.Config.UpdateTemplateSet:output_type -> pbcs.UpdateTemplateSetResp + 128, // 248: pbcs.Config.ListTemplateSets:output_type -> pbcs.ListTemplateSetsResp + 130, // 249: pbcs.Config.ListAppTemplateSets:output_type -> pbcs.ListAppTemplateSetsResp + 132, // 250: pbcs.Config.ListTemplateSetsByIDs:output_type -> pbcs.ListTemplateSetsByIDsResp + 134, // 251: pbcs.Config.ListTmplSetsOfBiz:output_type -> pbcs.ListTmplSetsOfBizResp + 136, // 252: pbcs.Config.CreateAppTemplateBinding:output_type -> pbcs.CreateAppTemplateBindingResp + 140, // 253: pbcs.Config.DeleteAppTemplateBinding:output_type -> pbcs.DeleteAppTemplateBindingResp + 138, // 254: pbcs.Config.UpdateAppTemplateBinding:output_type -> pbcs.UpdateAppTemplateBindingResp + 142, // 255: pbcs.Config.ListAppTemplateBindings:output_type -> pbcs.ListAppTemplateBindingsResp + 144, // 256: pbcs.Config.ListAppBoundTmplRevisions:output_type -> pbcs.ListAppBoundTmplRevisionsResp + 146, // 257: pbcs.Config.ListReleasedAppBoundTmplRevisions:output_type -> pbcs.ListReleasedAppBoundTmplRevisionsResp + 148, // 258: pbcs.Config.GetReleasedAppBoundTmplRevision:output_type -> pbcs.GetReleasedAppBoundTmplRevisionResp + 150, // 259: pbcs.Config.UpdateAppBoundTmplRevisions:output_type -> pbcs.UpdateAppBoundTmplRevisionsResp + 152, // 260: pbcs.Config.DeleteAppBoundTmplSets:output_type -> pbcs.DeleteAppBoundTmplSetsResp + 154, // 261: pbcs.Config.CheckAppTemplateBinding:output_type -> pbcs.CheckAppTemplateBindingResp + 156, // 262: pbcs.Config.ListTmplBoundCounts:output_type -> pbcs.ListTmplBoundCountsResp + 158, // 263: pbcs.Config.ListTmplRevisionBoundCounts:output_type -> pbcs.ListTmplRevisionBoundCountsResp + 160, // 264: pbcs.Config.ListTmplSetBoundCounts:output_type -> pbcs.ListTmplSetBoundCountsResp + 162, // 265: pbcs.Config.ListTmplBoundUnnamedApps:output_type -> pbcs.ListTmplBoundUnnamedAppsResp + 164, // 266: pbcs.Config.ListTmplBoundNamedApps:output_type -> pbcs.ListTmplBoundNamedAppsResp + 166, // 267: pbcs.Config.ListTmplBoundTmplSets:output_type -> pbcs.ListTmplBoundTmplSetsResp + 168, // 268: pbcs.Config.ListMultiTmplBoundTmplSets:output_type -> pbcs.ListMultiTmplBoundTmplSetsResp + 170, // 269: pbcs.Config.ListTmplRevisionBoundUnnamedApps:output_type -> pbcs.ListTmplRevisionBoundUnnamedAppsResp + 172, // 270: pbcs.Config.ListTmplRevisionBoundNamedApps:output_type -> pbcs.ListTmplRevisionBoundNamedAppsResp + 174, // 271: pbcs.Config.ListTmplSetBoundUnnamedApps:output_type -> pbcs.ListTmplSetBoundUnnamedAppsResp + 176, // 272: pbcs.Config.ListMultiTmplSetBoundUnnamedApps:output_type -> pbcs.ListMultiTmplSetBoundUnnamedAppsResp + 178, // 273: pbcs.Config.ListTmplSetBoundNamedApps:output_type -> pbcs.ListTmplSetBoundNamedAppsResp + 180, // 274: pbcs.Config.ListLatestTmplBoundUnnamedApps:output_type -> pbcs.ListLatestTmplBoundUnnamedAppsResp + 182, // 275: pbcs.Config.CreateTemplateVariable:output_type -> pbcs.CreateTemplateVariableResp + 186, // 276: pbcs.Config.DeleteTemplateVariable:output_type -> pbcs.DeleteTemplateVariableResp + 184, // 277: pbcs.Config.UpdateTemplateVariable:output_type -> pbcs.UpdateTemplateVariableResp + 188, // 278: pbcs.Config.ListTemplateVariables:output_type -> pbcs.ListTemplateVariablesResp + 190, // 279: pbcs.Config.ImportTemplateVariables:output_type -> pbcs.ImportTemplateVariablesResp + 192, // 280: pbcs.Config.ExtractAppTmplVariables:output_type -> pbcs.ExtractAppTmplVariablesResp + 194, // 281: pbcs.Config.GetAppTmplVariableRefs:output_type -> pbcs.GetAppTmplVariableRefsResp + 196, // 282: pbcs.Config.GetReleasedAppTmplVariableRefs:output_type -> pbcs.GetReleasedAppTmplVariableRefsResp + 198, // 283: pbcs.Config.UpdateAppTmplVariables:output_type -> pbcs.UpdateAppTmplVariablesResp + 200, // 284: pbcs.Config.ListAppTmplVariables:output_type -> pbcs.ListAppTmplVariablesResp + 202, // 285: pbcs.Config.ListReleasedAppTmplVariables:output_type -> pbcs.ListReleasedAppTmplVariablesResp + 204, // 286: pbcs.Config.CreateGroup:output_type -> pbcs.CreateGroupResp + 208, // 287: pbcs.Config.DeleteGroup:output_type -> pbcs.DeleteGroupResp + 206, // 288: pbcs.Config.UpdateGroup:output_type -> pbcs.UpdateGroupResp + 210, // 289: pbcs.Config.ListAllGroups:output_type -> pbcs.ListAllGroupsResp + 212, // 290: pbcs.Config.ListAppGroups:output_type -> pbcs.ListAppGroupsResp + 214, // 291: pbcs.Config.ListGroupReleasedApps:output_type -> pbcs.ListGroupReleasedAppsResp + 275, // 292: pbcs.Config.GetGroupByName:output_type -> pbgroup.Group + 219, // 293: pbcs.Config.Publish:output_type -> pbcs.PublishResp + 219, // 294: pbcs.Config.GenerateReleaseAndPublish:output_type -> pbcs.PublishResp + 13, // 295: pbcs.Config.CreateCredentials:output_type -> pbcs.CreateCredentialResp + 11, // 296: pbcs.Config.ListCredentials:output_type -> pbcs.ListCredentialsResp + 7, // 297: pbcs.Config.DeleteCredential:output_type -> pbcs.DeleteCredentialsResp + 9, // 298: pbcs.Config.UpdateCredential:output_type -> pbcs.UpdateCredentialsResp + 3, // 299: pbcs.Config.ListCredentialScopes:output_type -> pbcs.ListCredentialScopesResp + 1, // 300: pbcs.Config.UpdateCredentialScope:output_type -> pbcs.UpdateCredentialScopeResp + 190, // [190:301] is the sub-list for method output_type + 79, // [79:190] is the sub-list for method input_type + 79, // [79:79] is the sub-list for extension type_name + 79, // [79:79] is the sub-list for extension extendee + 0, // [0:79] is the sub-list for field type_name } func init() { file_config_service_proto_init() } diff --git a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.proto b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.proto index 7976b09298..1a6c5d7c62 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.proto +++ b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service.proto @@ -1981,23 +1981,27 @@ message GetGroupByNameReq { } message PublishReq { - uint32 biz_id = 1; - uint32 app_id = 2; - uint32 release_id = 3; - string memo = 4; - bool all = 5; - bool default = 6; - repeated uint32 groups = 7; + uint32 biz_id = 1; + uint32 app_id = 2; + uint32 release_id = 3; + string memo = 4; + bool all = 5; + string gray_publish_mode = 6; + bool default = 7; + repeated uint32 groups = 8; + repeated google.protobuf.Struct labels = 9; } message GenerateReleaseAndPublishReq { - uint32 biz_id = 1; - uint32 app_id = 2; - string release_name = 3; - string release_memo = 4; - bool all = 5; - repeated string groups = 6; - repeated pbtv.TemplateVariableSpec variables = 7; + uint32 biz_id = 1; + uint32 app_id = 2; + string release_name = 3; + string release_memo = 4; + repeated pbtv.TemplateVariableSpec variables = 5; + bool all = 6; + string gray_publish_mode = 7; + repeated string groups = 8; + repeated google.protobuf.Struct labels = 9; } message GenerateReleaseAndPublishResp { diff --git a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service_grpc.pb.go b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service_grpc.pb.go index f4ea30a5a2..222146bbe1 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service_grpc.pb.go +++ b/bcs-services/bcs-bscp/pkg/protocol/config-server/config_service_grpc.pb.go @@ -199,11 +199,11 @@ type ConfigClient interface { CreateTemplateRevision(ctx context.Context, in *CreateTemplateRevisionReq, opts ...grpc.CallOption) (*CreateTemplateRevisionResp, error) ListTemplateRevisions(ctx context.Context, in *ListTemplateRevisionsReq, opts ...grpc.CallOption) (*ListTemplateRevisionsResp, error) // 暂时不对外开发(删除模版后,服务引用的latest版本会回退到上一个老版本) - //rpc DeleteTemplateRevision(DeleteTemplateRevisionReq) returns (DeleteTemplateRevisionResp) { - //option (google.api.http) = { - //delete : "/api/v1/config/biz/{biz_id}/template_spaces/{template_space_id}/templates/{template_id}/template_revisions/{template_revision_id}" - //}; - //} + // rpc DeleteTemplateRevision(DeleteTemplateRevisionReq) returns (DeleteTemplateRevisionResp) { + // option (google.api.http) = { + // delete : "/api/v1/config/biz/{biz_id}/template_spaces/{template_space_id}/templates/{template_id}/template_revisions/{template_revision_id}" + // }; + // } ListTemplateRevisionsByIDs(ctx context.Context, in *ListTemplateRevisionsByIDsReq, opts ...grpc.CallOption) (*ListTemplateRevisionsByIDsResp, error) ListTmplRevisionNamesByTmplIDs(ctx context.Context, in *ListTmplRevisionNamesByTmplIDsReq, opts ...grpc.CallOption) (*ListTmplRevisionNamesByTmplIDsResp, error) CreateTemplateSet(ctx context.Context, in *CreateTemplateSetReq, opts ...grpc.CallOption) (*CreateTemplateSetResp, error) @@ -1333,11 +1333,11 @@ type ConfigServer interface { CreateTemplateRevision(context.Context, *CreateTemplateRevisionReq) (*CreateTemplateRevisionResp, error) ListTemplateRevisions(context.Context, *ListTemplateRevisionsReq) (*ListTemplateRevisionsResp, error) // 暂时不对外开发(删除模版后,服务引用的latest版本会回退到上一个老版本) - //rpc DeleteTemplateRevision(DeleteTemplateRevisionReq) returns (DeleteTemplateRevisionResp) { - //option (google.api.http) = { - //delete : "/api/v1/config/biz/{biz_id}/template_spaces/{template_space_id}/templates/{template_id}/template_revisions/{template_revision_id}" - //}; - //} + // rpc DeleteTemplateRevision(DeleteTemplateRevisionReq) returns (DeleteTemplateRevisionResp) { + // option (google.api.http) = { + // delete : "/api/v1/config/biz/{biz_id}/template_spaces/{template_space_id}/templates/{template_id}/template_revisions/{template_revision_id}" + // }; + // } ListTemplateRevisionsByIDs(context.Context, *ListTemplateRevisionsByIDsReq) (*ListTemplateRevisionsByIDsResp, error) ListTmplRevisionNamesByTmplIDs(context.Context, *ListTmplRevisionNamesByTmplIDsReq) (*ListTmplRevisionNamesByTmplIDsResp, error) CreateTemplateSet(context.Context, *CreateTemplateSetReq) (*CreateTemplateSetResp, error) diff --git a/bcs-services/bcs-bscp/pkg/protocol/core/group/convert.go b/bcs-services/bcs-bscp/pkg/protocol/core/group/convert.go index ebfef9ec18..258178a586 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/core/group/convert.go +++ b/bcs-services/bcs-bscp/pkg/protocol/core/group/convert.go @@ -160,3 +160,18 @@ func UnmarshalSelector(pb *pbstruct.Struct) (*selector.Selector, error) { return s, nil } + +// UnmarshalElement unmarshal pb struct to element. +func UnmarshalElement(pb *pbstruct.Struct) (*selector.Element, error) { + json, err := pb.MarshalJSON() + if err != nil { + return nil, err + } + + s := new(selector.Element) + if err = s.UnmarshalJSON(json); err != nil { + return nil, err + } + + return s, nil +} diff --git a/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.pb.go b/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.pb.go index d5e3f67744..8795c58539 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.pb.go +++ b/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.pb.go @@ -11327,13 +11327,15 @@ type PublishReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` - AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - ReleaseId uint32 `protobuf:"varint,3,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` - Memo string `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` - All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` - Default bool `protobuf:"varint,6,opt,name=default,proto3" json:"default,omitempty"` - Groups []uint32 `protobuf:"varint,7,rep,packed,name=groups,proto3" json:"groups,omitempty"` + BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` + AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + ReleaseId uint32 `protobuf:"varint,3,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` + Memo string `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` + All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` + GrayPublishMode string `protobuf:"bytes,6,opt,name=gray_publish_mode,json=grayPublishMode,proto3" json:"gray_publish_mode,omitempty"` + Default bool `protobuf:"varint,7,opt,name=default,proto3" json:"default,omitempty"` + Groups []uint32 `protobuf:"varint,8,rep,packed,name=groups,proto3" json:"groups,omitempty"` + Labels []*structpb.Struct `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"` } func (x *PublishReq) Reset() { @@ -11403,6 +11405,13 @@ func (x *PublishReq) GetAll() bool { return false } +func (x *PublishReq) GetGrayPublishMode() string { + if x != nil { + return x.GrayPublishMode + } + return "" +} + func (x *PublishReq) GetDefault() bool { if x != nil { return x.Default @@ -11417,18 +11426,27 @@ func (x *PublishReq) GetGroups() []uint32 { return nil } +func (x *PublishReq) GetLabels() []*structpb.Struct { + if x != nil { + return x.Labels + } + return nil +} + type GenerateReleaseAndPublishReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` - AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` - ReleaseName string `protobuf:"bytes,3,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` - ReleaseMemo string `protobuf:"bytes,4,opt,name=release_memo,json=releaseMemo,proto3" json:"release_memo,omitempty"` - All bool `protobuf:"varint,5,opt,name=all,proto3" json:"all,omitempty"` - Groups []string `protobuf:"bytes,6,rep,name=groups,proto3" json:"groups,omitempty"` - Variables []*template_variable.TemplateVariableSpec `protobuf:"bytes,7,rep,name=variables,proto3" json:"variables,omitempty"` + BizId uint32 `protobuf:"varint,1,opt,name=biz_id,json=bizId,proto3" json:"biz_id,omitempty"` + AppId uint32 `protobuf:"varint,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + ReleaseName string `protobuf:"bytes,3,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"` + ReleaseMemo string `protobuf:"bytes,4,opt,name=release_memo,json=releaseMemo,proto3" json:"release_memo,omitempty"` + Variables []*template_variable.TemplateVariableSpec `protobuf:"bytes,5,rep,name=variables,proto3" json:"variables,omitempty"` + All bool `protobuf:"varint,6,opt,name=all,proto3" json:"all,omitempty"` + GrayPublishMode string `protobuf:"bytes,7,opt,name=gray_publish_mode,json=grayPublishMode,proto3" json:"gray_publish_mode,omitempty"` + Groups []string `protobuf:"bytes,8,rep,name=groups,proto3" json:"groups,omitempty"` + Labels []*structpb.Struct `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"` } func (x *GenerateReleaseAndPublishReq) Reset() { @@ -11491,6 +11509,13 @@ func (x *GenerateReleaseAndPublishReq) GetReleaseMemo() string { return "" } +func (x *GenerateReleaseAndPublishReq) GetVariables() []*template_variable.TemplateVariableSpec { + if x != nil { + return x.Variables + } + return nil +} + func (x *GenerateReleaseAndPublishReq) GetAll() bool { if x != nil { return x.All @@ -11498,6 +11523,13 @@ func (x *GenerateReleaseAndPublishReq) GetAll() bool { return false } +func (x *GenerateReleaseAndPublishReq) GetGrayPublishMode() string { + if x != nil { + return x.GrayPublishMode + } + return "" +} + func (x *GenerateReleaseAndPublishReq) GetGroups() []string { if x != nil { return x.Groups @@ -11505,9 +11537,9 @@ func (x *GenerateReleaseAndPublishReq) GetGroups() []string { return nil } -func (x *GenerateReleaseAndPublishReq) GetVariables() []*template_variable.TemplateVariableSpec { +func (x *GenerateReleaseAndPublishReq) GetLabels() []*structpb.Struct { if x != nil { - return x.Variables + return x.Labels } return nil } @@ -14319,7 +14351,7 @@ var file_data_service_proto_rawDesc = []byte{ 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x22, 0x8e, 0x02, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x7a, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, @@ -14327,677 +14359,689 @@ var file_data_service_proto_rawDesc = []byte{ 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x1c, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, - 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x62, - 0x69, 0x7a, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x7a, - 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, - 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, - 0x62, 0x74, 0x76, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x0b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x79, + 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0xd3, 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x69, 0x7a, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x7a, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x38, 0x0a, 0x09, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x62, 0x74, 0x76, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x79, + 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0x50, 0x0a, + 0x0b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x1d, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, + 0x9b, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, + 0x61, 0x73, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, - 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x22, 0x36, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x71, - 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x32, 0xd6, 0x4b, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, + 0x73, 0x22, 0x45, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x71, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x1d, 0x0a, 0x07, 0x50, + 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd6, 0x4b, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x12, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x27, 0x0a, 0x06, 0x47, 0x65, - 0x74, 0x41, 0x70, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, - 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x49, - 0x44, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, - 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, - 0x70, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, - 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, - 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, - 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, - 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x10, - 0x2e, 0x70, 0x62, 0x63, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x39, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x15, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x27, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x12, 0x0f, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x22, 0x00, 0x12, 0x33, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x70, 0x62, 0x61, 0x70, 0x70, 0x2e, 0x41, 0x70, + 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, 0x79, 0x49, 0x44, + 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, + 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x19, - 0x2e, 0x70, 0x62, 0x72, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x12, - 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, + 0x73, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x63, 0x69, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x18, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, + 0x6f, 0x6b, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, - 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, + 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x37, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x43, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x72, 0x63, 0x69, + 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, + 0x6f, 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, + 0x6f, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0c, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x14, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x52, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, + 0x6f, 0x6b, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x12, - 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, - 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, + 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x42, 0x79, 0x49, 0x44, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x68, 0x72, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x13, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x45, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x6f, + 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x44, 0x12, 0x1c, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, + 0x62, 0x68, 0x72, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x00, 0x12, 0x46, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x50, - 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x79, 0x50, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x12, 0x2e, 0x70, 0x62, 0x68, 0x72, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, 0x0a, - 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x47, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1b, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, + 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, + 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x50, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x50, 0x75, + 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x68, 0x72, + 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, + 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x48, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, - 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1c, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x48, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x7a, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, + 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, + 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x16, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x46, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x41, + 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, + 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x48, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x17, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, - 0x53, 0x65, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, - 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, - 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, - 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, - 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, - 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6d, 0x70, 0x6c, + 0x73, 0x54, 0x6f, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, + 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, + 0x6c, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x20, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6d, 0x70, 0x6c, + 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, + 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, + 0x6c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x73, 0x4f, 0x66, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, + 0x12, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, + 0x6e, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, + 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x12, + 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, - 0x70, 0x6c, 0x49, 0x44, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, - 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, - 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x79, 0x54, 0x6d, 0x70, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x19, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x44, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, - 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, - 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, - 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x1d, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, - 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x42, 0x72, 0x69, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x65, 0x66, 0x49, - 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, - 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, - 0x42, 0x69, 0x7a, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, - 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x60, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, - 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, + 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x65, + 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x42, 0x72, 0x69, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x12, 0x1a, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x4f, 0x66, 0x42, 0x69, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4f, 0x66, 0x42, + 0x69, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, + 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x52, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, + 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x7e, 0x0a, + 0x21, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, + 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2b, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, - 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x78, 0x0a, + 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, - 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, - 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, - 0x73, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, - 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x75, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, + 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x41, 0x70, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x45, 0x78, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x45, 0x78, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x1e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x27, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x66, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, + 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, + 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, + 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, + 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, - 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, - 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, - 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x6f, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x12, 0x25, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x54, 0x6d, - 0x70, 0x6c, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x6c, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x12, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, - 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, - 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, - 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, - 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x5d, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x63, + 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, + 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, + 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1f, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, + 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, - 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, - 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, - 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x7b, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, - 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x1e, + 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x20, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x29, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x27, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, - 0x70, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, - 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x7b, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, + 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x24, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x66, - 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, - 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, - 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, + 0x29, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, + 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6d, 0x70, 0x6c, 0x53, + 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x53, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, + 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, - 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, - 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x6d, 0x70, + 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, + 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, + 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, + 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, + 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x73, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x75, 0x62, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, 0x41, 0x70, 0x70, + 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, + 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x19, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x41, - 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x41, 0x6e, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, - 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, - 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, - 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x2e, - 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, - 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5d, - 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, - 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x36, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x64, 0x73, - 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x1a, 0x0d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, - 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x22, - 0x05, 0x2f, 0x70, 0x69, 0x6e, 0x67, 0x3a, 0x01, 0x2a, 0x42, 0x28, 0x5a, 0x26, 0x62, 0x73, 0x63, - 0x70, 0x2e, 0x69, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3b, 0x70, - 0x62, 0x64, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x10, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x12, 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x46, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x19, 0x2e, 0x70, 0x62, + 0x64, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x10, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, + 0x19, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, + 0x62, 0x64, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x04, 0x50, + 0x69, 0x6e, 0x67, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x4d, + 0x73, 0x67, 0x1a, 0x0d, 0x2e, 0x70, 0x62, 0x64, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x73, + 0x67, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x22, 0x05, 0x2f, 0x70, 0x69, 0x6e, 0x67, + 0x3a, 0x01, 0x2a, 0x42, 0x28, 0x5a, 0x26, 0x62, 0x73, 0x63, 0x70, 0x2e, 0x69, 0x6f, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3b, 0x70, 0x62, 0x64, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -15284,10 +15328,10 @@ var file_data_service_proto_goTypes = []interface{}{ (*group.GroupAttachment)(nil), // 267: pbgroup.GroupAttachment (*group.GroupSpec)(nil), // 268: pbgroup.GroupSpec (*group.Group)(nil), // 269: pbgroup.Group - (*base.BasePage)(nil), // 270: pbbase.BasePage - (*hook.Hook)(nil), // 271: pbhook.Hook - (*hook_revision.HookRevision)(nil), // 272: pbhr.HookRevision - (*structpb.Struct)(nil), // 273: google.protobuf.Struct + (*structpb.Struct)(nil), // 270: google.protobuf.Struct + (*base.BasePage)(nil), // 271: pbbase.BasePage + (*hook.Hook)(nil), // 272: pbhook.Hook + (*hook_revision.HookRevision)(nil), // 273: pbhr.HookRevision (*base.EmptyReq)(nil), // 274: pbbase.EmptyReq (*base.EmptyResp)(nil), // 275: pbbase.EmptyResp (*content.Content)(nil), // 276: pbcontent.Content @@ -15423,264 +15467,266 @@ var file_data_service_proto_depIdxs = []int32{ 267, // 126: pbds.DeleteGroupReq.attachment:type_name -> pbgroup.GroupAttachment 200, // 127: pbds.CountGroupsReleasedAppsResp.data:type_name -> pbds.CountGroupsReleasedAppsResp.CountGroupsReleasedAppsData 201, // 128: pbds.ListGroupRleasesdAppsResp.details:type_name -> pbds.ListGroupRleasesdAppsResp.ListGroupReleasedAppsData - 220, // 129: pbds.GenerateReleaseAndPublishReq.variables:type_name -> pbtv.TemplateVariableSpec - 270, // 130: pbds.ListInstancesReq.page:type_name -> pbbase.BasePage - 187, // 131: pbds.ListInstancesResp.details:type_name -> pbds.InstanceResource - 190, // 132: pbds.FetchInstanceInfoResp.details:type_name -> pbds.InstanceInfo - 210, // 133: pbds.BatchUpsertConfigItemsReq.ConfigItem.config_item_attachment:type_name -> pbci.ConfigItemAttachment - 211, // 134: pbds.BatchUpsertConfigItemsReq.ConfigItem.config_item_spec:type_name -> pbci.ConfigItemSpec - 212, // 135: pbds.BatchUpsertConfigItemsReq.ConfigItem.content_spec:type_name -> pbcontent.ContentSpec - 271, // 136: pbds.ListHooksResp.Detail.hook:type_name -> pbhook.Hook - 272, // 137: pbds.ListHookRevisionsResp.ListHookRevisionsData.hook_revision:type_name -> pbhr.HookRevision - 273, // 138: pbds.ListAppGroupsResp.ListAppGroupsData.old_selector:type_name -> google.protobuf.Struct - 273, // 139: pbds.ListAppGroupsResp.ListAppGroupsData.new_selector:type_name -> google.protobuf.Struct - 16, // 140: pbds.Data.CreateApp:input_type -> pbds.CreateAppReq - 17, // 141: pbds.Data.UpdateApp:input_type -> pbds.UpdateAppReq - 18, // 142: pbds.Data.DeleteApp:input_type -> pbds.DeleteAppReq - 19, // 143: pbds.Data.GetApp:input_type -> pbds.GetAppReq - 20, // 144: pbds.Data.GetAppByID:input_type -> pbds.GetAppByIDReq - 21, // 145: pbds.Data.GetAppByName:input_type -> pbds.GetAppByNameReq - 22, // 146: pbds.Data.ListAppsRest:input_type -> pbds.ListAppsRestReq - 24, // 147: pbds.Data.ListAppsByIDs:input_type -> pbds.ListAppsByIDsReq - 26, // 148: pbds.Data.CreateConfigItem:input_type -> pbds.CreateConfigItemReq - 27, // 149: pbds.Data.BatchUpsertConfigItems:input_type -> pbds.BatchUpsertConfigItemsReq - 28, // 150: pbds.Data.UpdateConfigItem:input_type -> pbds.UpdateConfigItemReq - 29, // 151: pbds.Data.DeleteConfigItem:input_type -> pbds.DeleteConfigItemReq - 30, // 152: pbds.Data.GetConfigItem:input_type -> pbds.GetConfigItemReq - 31, // 153: pbds.Data.ListConfigItems:input_type -> pbds.ListConfigItemsReq - 33, // 154: pbds.Data.ListReleasedConfigItems:input_type -> pbds.ListReleasedConfigItemsReq - 35, // 155: pbds.Data.ListConfigItemCount:input_type -> pbds.ListConfigItemCountReq - 14, // 156: pbds.Data.UpdateConfigHook:input_type -> pbds.UpdateConfigHookReq - 37, // 157: pbds.Data.CreateContent:input_type -> pbds.CreateContentReq - 38, // 158: pbds.Data.GetContent:input_type -> pbds.GetContentReq - 39, // 159: pbds.Data.CreateCommit:input_type -> pbds.CreateCommitReq - 40, // 160: pbds.Data.GetLatestCommit:input_type -> pbds.GetLatestCommitReq - 41, // 161: pbds.Data.CreateRelease:input_type -> pbds.CreateReleaseReq - 42, // 162: pbds.Data.ListReleases:input_type -> pbds.ListReleasesReq - 44, // 163: pbds.Data.GetReleaseByName:input_type -> pbds.GetReleaseByNameReq - 45, // 164: pbds.Data.GetReleasedConfigItem:input_type -> pbds.GetReleasedCIReq - 46, // 165: pbds.Data.CreateHook:input_type -> pbds.CreateHookReq - 51, // 166: pbds.Data.ListHooks:input_type -> pbds.ListHooksReq - 56, // 167: pbds.Data.DeleteHook:input_type -> pbds.DeleteHookReq - 47, // 168: pbds.Data.ListHookTags:input_type -> pbds.ListHookTagReq - 54, // 169: pbds.Data.ListHookReferences:input_type -> pbds.ListHookReferencesReq - 48, // 170: pbds.Data.GetHook:input_type -> pbds.GetHookReq - 57, // 171: pbds.Data.CreateHookRevision:input_type -> pbds.CreateHookRevisionReq - 58, // 172: pbds.Data.ListHookRevisions:input_type -> pbds.ListHookRevisionsReq - 60, // 173: pbds.Data.GetHookRevisionByID:input_type -> pbds.GetHookRevisionByIdReq - 61, // 174: pbds.Data.DeleteHookRevision:input_type -> pbds.DeleteHookRevisionReq - 62, // 175: pbds.Data.PublishHookRevision:input_type -> pbds.PublishHookRevisionReq - 63, // 176: pbds.Data.GetHookRevisionByPubState:input_type -> pbds.GetByPubStateReq - 64, // 177: pbds.Data.UpdateHookRevision:input_type -> pbds.UpdateHookRevisionReq - 65, // 178: pbds.Data.ListHookRevisionReferences:input_type -> pbds.ListHookRevisionReferencesReq - 67, // 179: pbds.Data.GetReleaseHook:input_type -> pbds.GetReleaseHookReq - 69, // 180: pbds.Data.CreateTemplateSpace:input_type -> pbds.CreateTemplateSpaceReq - 70, // 181: pbds.Data.ListTemplateSpaces:input_type -> pbds.ListTemplateSpacesReq - 72, // 182: pbds.Data.UpdateTemplateSpace:input_type -> pbds.UpdateTemplateSpaceReq - 73, // 183: pbds.Data.DeleteTemplateSpace:input_type -> pbds.DeleteTemplateSpaceReq - 274, // 184: pbds.Data.GetAllBizsOfTmplSpaces:input_type -> pbbase.EmptyReq - 75, // 185: pbds.Data.CreateDefaultTmplSpace:input_type -> pbds.CreateDefaultTmplSpaceReq - 76, // 186: pbds.Data.ListTmplSpacesByIDs:input_type -> pbds.ListTmplSpacesByIDsReq - 78, // 187: pbds.Data.CreateTemplate:input_type -> pbds.CreateTemplateReq - 79, // 188: pbds.Data.ListTemplates:input_type -> pbds.ListTemplatesReq - 81, // 189: pbds.Data.UpdateTemplate:input_type -> pbds.UpdateTemplateReq - 82, // 190: pbds.Data.DeleteTemplate:input_type -> pbds.DeleteTemplateReq - 83, // 191: pbds.Data.BatchDeleteTemplate:input_type -> pbds.BatchDeleteTemplateReq - 84, // 192: pbds.Data.AddTmplsToTmplSets:input_type -> pbds.AddTmplsToTmplSetsReq - 85, // 193: pbds.Data.DeleteTmplsFromTmplSets:input_type -> pbds.DeleteTmplsFromTmplSetsReq - 86, // 194: pbds.Data.ListTemplatesByIDs:input_type -> pbds.ListTemplatesByIDsReq - 88, // 195: pbds.Data.ListTemplatesNotBound:input_type -> pbds.ListTemplatesNotBoundReq - 90, // 196: pbds.Data.ListTmplsOfTmplSet:input_type -> pbds.ListTmplsOfTmplSetReq - 92, // 197: pbds.Data.CreateTemplateRevision:input_type -> pbds.CreateTemplateRevisionReq - 93, // 198: pbds.Data.ListTemplateRevisions:input_type -> pbds.ListTemplateRevisionsReq - 95, // 199: pbds.Data.DeleteTemplateRevision:input_type -> pbds.DeleteTemplateRevisionReq - 96, // 200: pbds.Data.ListTemplateRevisionsByIDs:input_type -> pbds.ListTemplateRevisionsByIDsReq - 98, // 201: pbds.Data.ListTmplRevisionNamesByTmplIDs:input_type -> pbds.ListTmplRevisionNamesByTmplIDsReq - 100, // 202: pbds.Data.CreateTemplateSet:input_type -> pbds.CreateTemplateSetReq - 101, // 203: pbds.Data.ListTemplateSets:input_type -> pbds.ListTemplateSetsReq - 103, // 204: pbds.Data.UpdateTemplateSet:input_type -> pbds.UpdateTemplateSetReq - 104, // 205: pbds.Data.DeleteTemplateSet:input_type -> pbds.DeleteTemplateSetReq - 105, // 206: pbds.Data.ListAppTemplateSets:input_type -> pbds.ListAppTemplateSetsReq - 107, // 207: pbds.Data.ListTemplateSetsByIDs:input_type -> pbds.ListTemplateSetsByIDsReq - 109, // 208: pbds.Data.ListTemplateSetBriefInfoByIDs:input_type -> pbds.ListTemplateSetBriefInfoByIDsReq - 111, // 209: pbds.Data.ListTmplSetsOfBiz:input_type -> pbds.ListTmplSetsOfBizReq - 113, // 210: pbds.Data.CreateAppTemplateBinding:input_type -> pbds.CreateAppTemplateBindingReq - 114, // 211: pbds.Data.ListAppTemplateBindings:input_type -> pbds.ListAppTemplateBindingsReq - 116, // 212: pbds.Data.UpdateAppTemplateBinding:input_type -> pbds.UpdateAppTemplateBindingReq - 117, // 213: pbds.Data.DeleteAppTemplateBinding:input_type -> pbds.DeleteAppTemplateBindingReq - 118, // 214: pbds.Data.ListAppBoundTmplRevisions:input_type -> pbds.ListAppBoundTmplRevisionsReq - 120, // 215: pbds.Data.ListReleasedAppBoundTmplRevisions:input_type -> pbds.ListReleasedAppBoundTmplRevisionsReq - 122, // 216: pbds.Data.GetReleasedAppBoundTmplRevision:input_type -> pbds.GetReleasedAppBoundTmplRevisionReq - 124, // 217: pbds.Data.CheckAppTemplateBinding:input_type -> pbds.CheckAppTemplateBindingReq - 126, // 218: pbds.Data.ExtractAppTmplVariables:input_type -> pbds.ExtractAppTmplVariablesReq - 128, // 219: pbds.Data.GetAppTmplVariableRefs:input_type -> pbds.GetAppTmplVariableRefsReq - 130, // 220: pbds.Data.GetReleasedAppTmplVariableRefs:input_type -> pbds.GetReleasedAppTmplVariableRefsReq - 132, // 221: pbds.Data.UpdateAppTmplVariables:input_type -> pbds.UpdateAppTmplVariablesReq - 133, // 222: pbds.Data.ListAppTmplVariables:input_type -> pbds.ListAppTmplVariablesReq - 135, // 223: pbds.Data.ListReleasedAppTmplVariables:input_type -> pbds.ListReleasedAppTmplVariablesReq - 137, // 224: pbds.Data.ListTmplBoundCounts:input_type -> pbds.ListTmplBoundCountsReq - 139, // 225: pbds.Data.ListTmplRevisionBoundCounts:input_type -> pbds.ListTmplRevisionBoundCountsReq - 141, // 226: pbds.Data.ListTmplSetBoundCounts:input_type -> pbds.ListTmplSetBoundCountsReq - 143, // 227: pbds.Data.ListTmplBoundUnnamedApps:input_type -> pbds.ListTmplBoundUnnamedAppsReq - 145, // 228: pbds.Data.ListTmplBoundNamedApps:input_type -> pbds.ListTmplBoundNamedAppsReq - 147, // 229: pbds.Data.ListTmplBoundTmplSets:input_type -> pbds.ListTmplBoundTmplSetsReq - 149, // 230: pbds.Data.ListMultiTmplBoundTmplSets:input_type -> pbds.ListMultiTmplBoundTmplSetsReq - 151, // 231: pbds.Data.ListTmplRevisionBoundUnnamedApps:input_type -> pbds.ListTmplRevisionBoundUnnamedAppsReq - 153, // 232: pbds.Data.ListTmplRevisionBoundNamedApps:input_type -> pbds.ListTmplRevisionBoundNamedAppsReq - 155, // 233: pbds.Data.ListTmplSetBoundUnnamedApps:input_type -> pbds.ListTmplSetBoundUnnamedAppsReq - 157, // 234: pbds.Data.ListMultiTmplSetBoundUnnamedApps:input_type -> pbds.ListMultiTmplSetBoundUnnamedAppsReq - 159, // 235: pbds.Data.ListTmplSetBoundNamedApps:input_type -> pbds.ListTmplSetBoundNamedAppsReq - 161, // 236: pbds.Data.ListLatestTmplBoundUnnamedApps:input_type -> pbds.ListLatestTmplBoundUnnamedAppsReq - 163, // 237: pbds.Data.CreateTemplateVariable:input_type -> pbds.CreateTemplateVariableReq - 166, // 238: pbds.Data.ListTemplateVariables:input_type -> pbds.ListTemplateVariablesReq - 168, // 239: pbds.Data.UpdateTemplateVariable:input_type -> pbds.UpdateTemplateVariableReq - 169, // 240: pbds.Data.DeleteTemplateVariable:input_type -> pbds.DeleteTemplateVariableReq - 164, // 241: pbds.Data.ImportTemplateVariables:input_type -> pbds.ImportTemplateVariablesReq - 170, // 242: pbds.Data.CreateGroup:input_type -> pbds.CreateGroupReq - 171, // 243: pbds.Data.ListAllGroups:input_type -> pbds.ListAllGroupsReq - 173, // 244: pbds.Data.ListAppGroups:input_type -> pbds.ListAppGroupsReq - 175, // 245: pbds.Data.GetGroupByName:input_type -> pbds.GetGroupByNameReq - 176, // 246: pbds.Data.UpdateGroup:input_type -> pbds.UpdateGroupReq - 177, // 247: pbds.Data.DeleteGroup:input_type -> pbds.DeleteGroupReq - 178, // 248: pbds.Data.CountGroupsReleasedApps:input_type -> pbds.CountGroupsReleasedAppsReq - 180, // 249: pbds.Data.ListGroupRleasesdApps:input_type -> pbds.ListGroupRleasesdAppsReq - 182, // 250: pbds.Data.Publish:input_type -> pbds.PublishReq - 183, // 251: pbds.Data.GenerateReleaseAndPublish:input_type -> pbds.GenerateReleaseAndPublishReq - 7, // 252: pbds.Data.CreateCredential:input_type -> pbds.CreateCredentialReq - 8, // 253: pbds.Data.ListCredentials:input_type -> pbds.ListCredentialReq - 11, // 254: pbds.Data.DeleteCredential:input_type -> pbds.DeleteCredentialReq - 10, // 255: pbds.Data.UpdateCredential:input_type -> pbds.UpdateCredentialReq - 4, // 256: pbds.Data.ListCredentialScopes:input_type -> pbds.ListCredentialScopesReq - 0, // 257: pbds.Data.UpdateCredentialScopes:input_type -> pbds.UpdateCredentialScopesReq - 185, // 258: pbds.Data.ListInstances:input_type -> pbds.ListInstancesReq - 188, // 259: pbds.Data.FetchInstanceInfo:input_type -> pbds.FetchInstanceInfoReq - 191, // 260: pbds.Data.Ping:input_type -> pbds.PingMsg - 13, // 261: pbds.Data.CreateApp:output_type -> pbds.CreateResp - 275, // 262: pbds.Data.UpdateApp:output_type -> pbbase.EmptyResp - 275, // 263: pbds.Data.DeleteApp:output_type -> pbbase.EmptyResp - 209, // 264: pbds.Data.GetApp:output_type -> pbapp.App - 209, // 265: pbds.Data.GetAppByID:output_type -> pbapp.App - 209, // 266: pbds.Data.GetAppByName:output_type -> pbapp.App - 23, // 267: pbds.Data.ListAppsRest:output_type -> pbds.ListAppsResp - 25, // 268: pbds.Data.ListAppsByIDs:output_type -> pbds.ListAppsByIDsResp - 13, // 269: pbds.Data.CreateConfigItem:output_type -> pbds.CreateResp - 275, // 270: pbds.Data.BatchUpsertConfigItems:output_type -> pbbase.EmptyResp - 275, // 271: pbds.Data.UpdateConfigItem:output_type -> pbbase.EmptyResp - 275, // 272: pbds.Data.DeleteConfigItem:output_type -> pbbase.EmptyResp - 213, // 273: pbds.Data.GetConfigItem:output_type -> pbci.ConfigItem - 32, // 274: pbds.Data.ListConfigItems:output_type -> pbds.ListConfigItemsResp - 34, // 275: pbds.Data.ListReleasedConfigItems:output_type -> pbds.ListReleasedConfigItemsResp - 36, // 276: pbds.Data.ListConfigItemCount:output_type -> pbds.ListConfigItemCountResp - 275, // 277: pbds.Data.UpdateConfigHook:output_type -> pbbase.EmptyResp - 13, // 278: pbds.Data.CreateContent:output_type -> pbds.CreateResp - 276, // 279: pbds.Data.GetContent:output_type -> pbcontent.Content - 13, // 280: pbds.Data.CreateCommit:output_type -> pbds.CreateResp - 277, // 281: pbds.Data.GetLatestCommit:output_type -> pbcommit.Commit - 13, // 282: pbds.Data.CreateRelease:output_type -> pbds.CreateResp - 43, // 283: pbds.Data.ListReleases:output_type -> pbds.ListReleasesResp - 221, // 284: pbds.Data.GetReleaseByName:output_type -> pbrelease.Release - 214, // 285: pbds.Data.GetReleasedConfigItem:output_type -> pbrci.ReleasedConfigItem - 13, // 286: pbds.Data.CreateHook:output_type -> pbds.CreateResp - 52, // 287: pbds.Data.ListHooks:output_type -> pbds.ListHooksResp - 275, // 288: pbds.Data.DeleteHook:output_type -> pbbase.EmptyResp - 53, // 289: pbds.Data.ListHookTags:output_type -> pbds.ListHookTagResp - 55, // 290: pbds.Data.ListHookReferences:output_type -> pbds.ListHookReferencesResp - 49, // 291: pbds.Data.GetHook:output_type -> pbds.GetHookResp - 13, // 292: pbds.Data.CreateHookRevision:output_type -> pbds.CreateResp - 59, // 293: pbds.Data.ListHookRevisions:output_type -> pbds.ListHookRevisionsResp - 272, // 294: pbds.Data.GetHookRevisionByID:output_type -> pbhr.HookRevision - 275, // 295: pbds.Data.DeleteHookRevision:output_type -> pbbase.EmptyResp - 275, // 296: pbds.Data.PublishHookRevision:output_type -> pbbase.EmptyResp - 272, // 297: pbds.Data.GetHookRevisionByPubState:output_type -> pbhr.HookRevision - 275, // 298: pbds.Data.UpdateHookRevision:output_type -> pbbase.EmptyResp - 66, // 299: pbds.Data.ListHookRevisionReferences:output_type -> pbds.ListHookRevisionReferencesResp - 68, // 300: pbds.Data.GetReleaseHook:output_type -> pbds.GetReleaseHookResp - 13, // 301: pbds.Data.CreateTemplateSpace:output_type -> pbds.CreateResp - 71, // 302: pbds.Data.ListTemplateSpaces:output_type -> pbds.ListTemplateSpacesResp - 275, // 303: pbds.Data.UpdateTemplateSpace:output_type -> pbbase.EmptyResp - 275, // 304: pbds.Data.DeleteTemplateSpace:output_type -> pbbase.EmptyResp - 74, // 305: pbds.Data.GetAllBizsOfTmplSpaces:output_type -> pbds.GetAllBizsOfTmplSpacesResp - 13, // 306: pbds.Data.CreateDefaultTmplSpace:output_type -> pbds.CreateResp - 77, // 307: pbds.Data.ListTmplSpacesByIDs:output_type -> pbds.ListTmplSpacesByIDsResp - 13, // 308: pbds.Data.CreateTemplate:output_type -> pbds.CreateResp - 80, // 309: pbds.Data.ListTemplates:output_type -> pbds.ListTemplatesResp - 275, // 310: pbds.Data.UpdateTemplate:output_type -> pbbase.EmptyResp - 275, // 311: pbds.Data.DeleteTemplate:output_type -> pbbase.EmptyResp - 275, // 312: pbds.Data.BatchDeleteTemplate:output_type -> pbbase.EmptyResp - 275, // 313: pbds.Data.AddTmplsToTmplSets:output_type -> pbbase.EmptyResp - 275, // 314: pbds.Data.DeleteTmplsFromTmplSets:output_type -> pbbase.EmptyResp - 87, // 315: pbds.Data.ListTemplatesByIDs:output_type -> pbds.ListTemplatesByIDsResp - 89, // 316: pbds.Data.ListTemplatesNotBound:output_type -> pbds.ListTemplatesNotBoundResp - 91, // 317: pbds.Data.ListTmplsOfTmplSet:output_type -> pbds.ListTmplsOfTmplSetResp - 13, // 318: pbds.Data.CreateTemplateRevision:output_type -> pbds.CreateResp - 94, // 319: pbds.Data.ListTemplateRevisions:output_type -> pbds.ListTemplateRevisionsResp - 275, // 320: pbds.Data.DeleteTemplateRevision:output_type -> pbbase.EmptyResp - 97, // 321: pbds.Data.ListTemplateRevisionsByIDs:output_type -> pbds.ListTemplateRevisionsByIDsResp - 99, // 322: pbds.Data.ListTmplRevisionNamesByTmplIDs:output_type -> pbds.ListTmplRevisionNamesByTmplIDsResp - 13, // 323: pbds.Data.CreateTemplateSet:output_type -> pbds.CreateResp - 102, // 324: pbds.Data.ListTemplateSets:output_type -> pbds.ListTemplateSetsResp - 275, // 325: pbds.Data.UpdateTemplateSet:output_type -> pbbase.EmptyResp - 275, // 326: pbds.Data.DeleteTemplateSet:output_type -> pbbase.EmptyResp - 106, // 327: pbds.Data.ListAppTemplateSets:output_type -> pbds.ListAppTemplateSetsResp - 108, // 328: pbds.Data.ListTemplateSetsByIDs:output_type -> pbds.ListTemplateSetsByIDsResp - 110, // 329: pbds.Data.ListTemplateSetBriefInfoByIDs:output_type -> pbds.ListTemplateSetBriefInfoByIDsResp - 112, // 330: pbds.Data.ListTmplSetsOfBiz:output_type -> pbds.ListTmplSetsOfBizResp - 13, // 331: pbds.Data.CreateAppTemplateBinding:output_type -> pbds.CreateResp - 115, // 332: pbds.Data.ListAppTemplateBindings:output_type -> pbds.ListAppTemplateBindingsResp - 275, // 333: pbds.Data.UpdateAppTemplateBinding:output_type -> pbbase.EmptyResp - 275, // 334: pbds.Data.DeleteAppTemplateBinding:output_type -> pbbase.EmptyResp - 119, // 335: pbds.Data.ListAppBoundTmplRevisions:output_type -> pbds.ListAppBoundTmplRevisionsResp - 121, // 336: pbds.Data.ListReleasedAppBoundTmplRevisions:output_type -> pbds.ListReleasedAppBoundTmplRevisionsResp - 123, // 337: pbds.Data.GetReleasedAppBoundTmplRevision:output_type -> pbds.GetReleasedAppBoundTmplRevisionResp - 125, // 338: pbds.Data.CheckAppTemplateBinding:output_type -> pbds.CheckAppTemplateBindingResp - 127, // 339: pbds.Data.ExtractAppTmplVariables:output_type -> pbds.ExtractAppTmplVariablesResp - 129, // 340: pbds.Data.GetAppTmplVariableRefs:output_type -> pbds.GetAppTmplVariableRefsResp - 131, // 341: pbds.Data.GetReleasedAppTmplVariableRefs:output_type -> pbds.GetReleasedAppTmplVariableRefsResp - 275, // 342: pbds.Data.UpdateAppTmplVariables:output_type -> pbbase.EmptyResp - 134, // 343: pbds.Data.ListAppTmplVariables:output_type -> pbds.ListAppTmplVariablesResp - 136, // 344: pbds.Data.ListReleasedAppTmplVariables:output_type -> pbds.ListReleasedAppTmplVariablesResp - 138, // 345: pbds.Data.ListTmplBoundCounts:output_type -> pbds.ListTmplBoundCountsResp - 140, // 346: pbds.Data.ListTmplRevisionBoundCounts:output_type -> pbds.ListTmplRevisionBoundCountsResp - 142, // 347: pbds.Data.ListTmplSetBoundCounts:output_type -> pbds.ListTmplSetBoundCountsResp - 144, // 348: pbds.Data.ListTmplBoundUnnamedApps:output_type -> pbds.ListTmplBoundUnnamedAppsResp - 146, // 349: pbds.Data.ListTmplBoundNamedApps:output_type -> pbds.ListTmplBoundNamedAppsResp - 148, // 350: pbds.Data.ListTmplBoundTmplSets:output_type -> pbds.ListTmplBoundTmplSetsResp - 150, // 351: pbds.Data.ListMultiTmplBoundTmplSets:output_type -> pbds.ListMultiTmplBoundTmplSetsResp - 152, // 352: pbds.Data.ListTmplRevisionBoundUnnamedApps:output_type -> pbds.ListTmplRevisionBoundUnnamedAppsResp - 154, // 353: pbds.Data.ListTmplRevisionBoundNamedApps:output_type -> pbds.ListTmplRevisionBoundNamedAppsResp - 156, // 354: pbds.Data.ListTmplSetBoundUnnamedApps:output_type -> pbds.ListTmplSetBoundUnnamedAppsResp - 158, // 355: pbds.Data.ListMultiTmplSetBoundUnnamedApps:output_type -> pbds.ListMultiTmplSetBoundUnnamedAppsResp - 160, // 356: pbds.Data.ListTmplSetBoundNamedApps:output_type -> pbds.ListTmplSetBoundNamedAppsResp - 162, // 357: pbds.Data.ListLatestTmplBoundUnnamedApps:output_type -> pbds.ListLatestTmplBoundUnnamedAppsResp - 13, // 358: pbds.Data.CreateTemplateVariable:output_type -> pbds.CreateResp - 167, // 359: pbds.Data.ListTemplateVariables:output_type -> pbds.ListTemplateVariablesResp - 275, // 360: pbds.Data.UpdateTemplateVariable:output_type -> pbbase.EmptyResp - 275, // 361: pbds.Data.DeleteTemplateVariable:output_type -> pbbase.EmptyResp - 165, // 362: pbds.Data.ImportTemplateVariables:output_type -> pbds.ImportTemplateVariablesResp - 13, // 363: pbds.Data.CreateGroup:output_type -> pbds.CreateResp - 172, // 364: pbds.Data.ListAllGroups:output_type -> pbds.ListAllGroupsResp - 174, // 365: pbds.Data.ListAppGroups:output_type -> pbds.ListAppGroupsResp - 269, // 366: pbds.Data.GetGroupByName:output_type -> pbgroup.Group - 275, // 367: pbds.Data.UpdateGroup:output_type -> pbbase.EmptyResp - 275, // 368: pbds.Data.DeleteGroup:output_type -> pbbase.EmptyResp - 179, // 369: pbds.Data.CountGroupsReleasedApps:output_type -> pbds.CountGroupsReleasedAppsResp - 181, // 370: pbds.Data.ListGroupRleasesdApps:output_type -> pbds.ListGroupRleasesdAppsResp - 184, // 371: pbds.Data.Publish:output_type -> pbds.PublishResp - 184, // 372: pbds.Data.GenerateReleaseAndPublish:output_type -> pbds.PublishResp - 13, // 373: pbds.Data.CreateCredential:output_type -> pbds.CreateResp - 9, // 374: pbds.Data.ListCredentials:output_type -> pbds.ListCredentialResp - 275, // 375: pbds.Data.DeleteCredential:output_type -> pbbase.EmptyResp - 275, // 376: pbds.Data.UpdateCredential:output_type -> pbbase.EmptyResp - 5, // 377: pbds.Data.ListCredentialScopes:output_type -> pbds.ListCredentialScopesResp - 1, // 378: pbds.Data.UpdateCredentialScopes:output_type -> pbds.UpdateCredentialScopesResp - 186, // 379: pbds.Data.ListInstances:output_type -> pbds.ListInstancesResp - 189, // 380: pbds.Data.FetchInstanceInfo:output_type -> pbds.FetchInstanceInfoResp - 191, // 381: pbds.Data.Ping:output_type -> pbds.PingMsg - 261, // [261:382] is the sub-list for method output_type - 140, // [140:261] is the sub-list for method input_type - 140, // [140:140] is the sub-list for extension type_name - 140, // [140:140] is the sub-list for extension extendee - 0, // [0:140] is the sub-list for field type_name + 270, // 129: pbds.PublishReq.labels:type_name -> google.protobuf.Struct + 220, // 130: pbds.GenerateReleaseAndPublishReq.variables:type_name -> pbtv.TemplateVariableSpec + 270, // 131: pbds.GenerateReleaseAndPublishReq.labels:type_name -> google.protobuf.Struct + 271, // 132: pbds.ListInstancesReq.page:type_name -> pbbase.BasePage + 187, // 133: pbds.ListInstancesResp.details:type_name -> pbds.InstanceResource + 190, // 134: pbds.FetchInstanceInfoResp.details:type_name -> pbds.InstanceInfo + 210, // 135: pbds.BatchUpsertConfigItemsReq.ConfigItem.config_item_attachment:type_name -> pbci.ConfigItemAttachment + 211, // 136: pbds.BatchUpsertConfigItemsReq.ConfigItem.config_item_spec:type_name -> pbci.ConfigItemSpec + 212, // 137: pbds.BatchUpsertConfigItemsReq.ConfigItem.content_spec:type_name -> pbcontent.ContentSpec + 272, // 138: pbds.ListHooksResp.Detail.hook:type_name -> pbhook.Hook + 273, // 139: pbds.ListHookRevisionsResp.ListHookRevisionsData.hook_revision:type_name -> pbhr.HookRevision + 270, // 140: pbds.ListAppGroupsResp.ListAppGroupsData.old_selector:type_name -> google.protobuf.Struct + 270, // 141: pbds.ListAppGroupsResp.ListAppGroupsData.new_selector:type_name -> google.protobuf.Struct + 16, // 142: pbds.Data.CreateApp:input_type -> pbds.CreateAppReq + 17, // 143: pbds.Data.UpdateApp:input_type -> pbds.UpdateAppReq + 18, // 144: pbds.Data.DeleteApp:input_type -> pbds.DeleteAppReq + 19, // 145: pbds.Data.GetApp:input_type -> pbds.GetAppReq + 20, // 146: pbds.Data.GetAppByID:input_type -> pbds.GetAppByIDReq + 21, // 147: pbds.Data.GetAppByName:input_type -> pbds.GetAppByNameReq + 22, // 148: pbds.Data.ListAppsRest:input_type -> pbds.ListAppsRestReq + 24, // 149: pbds.Data.ListAppsByIDs:input_type -> pbds.ListAppsByIDsReq + 26, // 150: pbds.Data.CreateConfigItem:input_type -> pbds.CreateConfigItemReq + 27, // 151: pbds.Data.BatchUpsertConfigItems:input_type -> pbds.BatchUpsertConfigItemsReq + 28, // 152: pbds.Data.UpdateConfigItem:input_type -> pbds.UpdateConfigItemReq + 29, // 153: pbds.Data.DeleteConfigItem:input_type -> pbds.DeleteConfigItemReq + 30, // 154: pbds.Data.GetConfigItem:input_type -> pbds.GetConfigItemReq + 31, // 155: pbds.Data.ListConfigItems:input_type -> pbds.ListConfigItemsReq + 33, // 156: pbds.Data.ListReleasedConfigItems:input_type -> pbds.ListReleasedConfigItemsReq + 35, // 157: pbds.Data.ListConfigItemCount:input_type -> pbds.ListConfigItemCountReq + 14, // 158: pbds.Data.UpdateConfigHook:input_type -> pbds.UpdateConfigHookReq + 37, // 159: pbds.Data.CreateContent:input_type -> pbds.CreateContentReq + 38, // 160: pbds.Data.GetContent:input_type -> pbds.GetContentReq + 39, // 161: pbds.Data.CreateCommit:input_type -> pbds.CreateCommitReq + 40, // 162: pbds.Data.GetLatestCommit:input_type -> pbds.GetLatestCommitReq + 41, // 163: pbds.Data.CreateRelease:input_type -> pbds.CreateReleaseReq + 42, // 164: pbds.Data.ListReleases:input_type -> pbds.ListReleasesReq + 44, // 165: pbds.Data.GetReleaseByName:input_type -> pbds.GetReleaseByNameReq + 45, // 166: pbds.Data.GetReleasedConfigItem:input_type -> pbds.GetReleasedCIReq + 46, // 167: pbds.Data.CreateHook:input_type -> pbds.CreateHookReq + 51, // 168: pbds.Data.ListHooks:input_type -> pbds.ListHooksReq + 56, // 169: pbds.Data.DeleteHook:input_type -> pbds.DeleteHookReq + 47, // 170: pbds.Data.ListHookTags:input_type -> pbds.ListHookTagReq + 54, // 171: pbds.Data.ListHookReferences:input_type -> pbds.ListHookReferencesReq + 48, // 172: pbds.Data.GetHook:input_type -> pbds.GetHookReq + 57, // 173: pbds.Data.CreateHookRevision:input_type -> pbds.CreateHookRevisionReq + 58, // 174: pbds.Data.ListHookRevisions:input_type -> pbds.ListHookRevisionsReq + 60, // 175: pbds.Data.GetHookRevisionByID:input_type -> pbds.GetHookRevisionByIdReq + 61, // 176: pbds.Data.DeleteHookRevision:input_type -> pbds.DeleteHookRevisionReq + 62, // 177: pbds.Data.PublishHookRevision:input_type -> pbds.PublishHookRevisionReq + 63, // 178: pbds.Data.GetHookRevisionByPubState:input_type -> pbds.GetByPubStateReq + 64, // 179: pbds.Data.UpdateHookRevision:input_type -> pbds.UpdateHookRevisionReq + 65, // 180: pbds.Data.ListHookRevisionReferences:input_type -> pbds.ListHookRevisionReferencesReq + 67, // 181: pbds.Data.GetReleaseHook:input_type -> pbds.GetReleaseHookReq + 69, // 182: pbds.Data.CreateTemplateSpace:input_type -> pbds.CreateTemplateSpaceReq + 70, // 183: pbds.Data.ListTemplateSpaces:input_type -> pbds.ListTemplateSpacesReq + 72, // 184: pbds.Data.UpdateTemplateSpace:input_type -> pbds.UpdateTemplateSpaceReq + 73, // 185: pbds.Data.DeleteTemplateSpace:input_type -> pbds.DeleteTemplateSpaceReq + 274, // 186: pbds.Data.GetAllBizsOfTmplSpaces:input_type -> pbbase.EmptyReq + 75, // 187: pbds.Data.CreateDefaultTmplSpace:input_type -> pbds.CreateDefaultTmplSpaceReq + 76, // 188: pbds.Data.ListTmplSpacesByIDs:input_type -> pbds.ListTmplSpacesByIDsReq + 78, // 189: pbds.Data.CreateTemplate:input_type -> pbds.CreateTemplateReq + 79, // 190: pbds.Data.ListTemplates:input_type -> pbds.ListTemplatesReq + 81, // 191: pbds.Data.UpdateTemplate:input_type -> pbds.UpdateTemplateReq + 82, // 192: pbds.Data.DeleteTemplate:input_type -> pbds.DeleteTemplateReq + 83, // 193: pbds.Data.BatchDeleteTemplate:input_type -> pbds.BatchDeleteTemplateReq + 84, // 194: pbds.Data.AddTmplsToTmplSets:input_type -> pbds.AddTmplsToTmplSetsReq + 85, // 195: pbds.Data.DeleteTmplsFromTmplSets:input_type -> pbds.DeleteTmplsFromTmplSetsReq + 86, // 196: pbds.Data.ListTemplatesByIDs:input_type -> pbds.ListTemplatesByIDsReq + 88, // 197: pbds.Data.ListTemplatesNotBound:input_type -> pbds.ListTemplatesNotBoundReq + 90, // 198: pbds.Data.ListTmplsOfTmplSet:input_type -> pbds.ListTmplsOfTmplSetReq + 92, // 199: pbds.Data.CreateTemplateRevision:input_type -> pbds.CreateTemplateRevisionReq + 93, // 200: pbds.Data.ListTemplateRevisions:input_type -> pbds.ListTemplateRevisionsReq + 95, // 201: pbds.Data.DeleteTemplateRevision:input_type -> pbds.DeleteTemplateRevisionReq + 96, // 202: pbds.Data.ListTemplateRevisionsByIDs:input_type -> pbds.ListTemplateRevisionsByIDsReq + 98, // 203: pbds.Data.ListTmplRevisionNamesByTmplIDs:input_type -> pbds.ListTmplRevisionNamesByTmplIDsReq + 100, // 204: pbds.Data.CreateTemplateSet:input_type -> pbds.CreateTemplateSetReq + 101, // 205: pbds.Data.ListTemplateSets:input_type -> pbds.ListTemplateSetsReq + 103, // 206: pbds.Data.UpdateTemplateSet:input_type -> pbds.UpdateTemplateSetReq + 104, // 207: pbds.Data.DeleteTemplateSet:input_type -> pbds.DeleteTemplateSetReq + 105, // 208: pbds.Data.ListAppTemplateSets:input_type -> pbds.ListAppTemplateSetsReq + 107, // 209: pbds.Data.ListTemplateSetsByIDs:input_type -> pbds.ListTemplateSetsByIDsReq + 109, // 210: pbds.Data.ListTemplateSetBriefInfoByIDs:input_type -> pbds.ListTemplateSetBriefInfoByIDsReq + 111, // 211: pbds.Data.ListTmplSetsOfBiz:input_type -> pbds.ListTmplSetsOfBizReq + 113, // 212: pbds.Data.CreateAppTemplateBinding:input_type -> pbds.CreateAppTemplateBindingReq + 114, // 213: pbds.Data.ListAppTemplateBindings:input_type -> pbds.ListAppTemplateBindingsReq + 116, // 214: pbds.Data.UpdateAppTemplateBinding:input_type -> pbds.UpdateAppTemplateBindingReq + 117, // 215: pbds.Data.DeleteAppTemplateBinding:input_type -> pbds.DeleteAppTemplateBindingReq + 118, // 216: pbds.Data.ListAppBoundTmplRevisions:input_type -> pbds.ListAppBoundTmplRevisionsReq + 120, // 217: pbds.Data.ListReleasedAppBoundTmplRevisions:input_type -> pbds.ListReleasedAppBoundTmplRevisionsReq + 122, // 218: pbds.Data.GetReleasedAppBoundTmplRevision:input_type -> pbds.GetReleasedAppBoundTmplRevisionReq + 124, // 219: pbds.Data.CheckAppTemplateBinding:input_type -> pbds.CheckAppTemplateBindingReq + 126, // 220: pbds.Data.ExtractAppTmplVariables:input_type -> pbds.ExtractAppTmplVariablesReq + 128, // 221: pbds.Data.GetAppTmplVariableRefs:input_type -> pbds.GetAppTmplVariableRefsReq + 130, // 222: pbds.Data.GetReleasedAppTmplVariableRefs:input_type -> pbds.GetReleasedAppTmplVariableRefsReq + 132, // 223: pbds.Data.UpdateAppTmplVariables:input_type -> pbds.UpdateAppTmplVariablesReq + 133, // 224: pbds.Data.ListAppTmplVariables:input_type -> pbds.ListAppTmplVariablesReq + 135, // 225: pbds.Data.ListReleasedAppTmplVariables:input_type -> pbds.ListReleasedAppTmplVariablesReq + 137, // 226: pbds.Data.ListTmplBoundCounts:input_type -> pbds.ListTmplBoundCountsReq + 139, // 227: pbds.Data.ListTmplRevisionBoundCounts:input_type -> pbds.ListTmplRevisionBoundCountsReq + 141, // 228: pbds.Data.ListTmplSetBoundCounts:input_type -> pbds.ListTmplSetBoundCountsReq + 143, // 229: pbds.Data.ListTmplBoundUnnamedApps:input_type -> pbds.ListTmplBoundUnnamedAppsReq + 145, // 230: pbds.Data.ListTmplBoundNamedApps:input_type -> pbds.ListTmplBoundNamedAppsReq + 147, // 231: pbds.Data.ListTmplBoundTmplSets:input_type -> pbds.ListTmplBoundTmplSetsReq + 149, // 232: pbds.Data.ListMultiTmplBoundTmplSets:input_type -> pbds.ListMultiTmplBoundTmplSetsReq + 151, // 233: pbds.Data.ListTmplRevisionBoundUnnamedApps:input_type -> pbds.ListTmplRevisionBoundUnnamedAppsReq + 153, // 234: pbds.Data.ListTmplRevisionBoundNamedApps:input_type -> pbds.ListTmplRevisionBoundNamedAppsReq + 155, // 235: pbds.Data.ListTmplSetBoundUnnamedApps:input_type -> pbds.ListTmplSetBoundUnnamedAppsReq + 157, // 236: pbds.Data.ListMultiTmplSetBoundUnnamedApps:input_type -> pbds.ListMultiTmplSetBoundUnnamedAppsReq + 159, // 237: pbds.Data.ListTmplSetBoundNamedApps:input_type -> pbds.ListTmplSetBoundNamedAppsReq + 161, // 238: pbds.Data.ListLatestTmplBoundUnnamedApps:input_type -> pbds.ListLatestTmplBoundUnnamedAppsReq + 163, // 239: pbds.Data.CreateTemplateVariable:input_type -> pbds.CreateTemplateVariableReq + 166, // 240: pbds.Data.ListTemplateVariables:input_type -> pbds.ListTemplateVariablesReq + 168, // 241: pbds.Data.UpdateTemplateVariable:input_type -> pbds.UpdateTemplateVariableReq + 169, // 242: pbds.Data.DeleteTemplateVariable:input_type -> pbds.DeleteTemplateVariableReq + 164, // 243: pbds.Data.ImportTemplateVariables:input_type -> pbds.ImportTemplateVariablesReq + 170, // 244: pbds.Data.CreateGroup:input_type -> pbds.CreateGroupReq + 171, // 245: pbds.Data.ListAllGroups:input_type -> pbds.ListAllGroupsReq + 173, // 246: pbds.Data.ListAppGroups:input_type -> pbds.ListAppGroupsReq + 175, // 247: pbds.Data.GetGroupByName:input_type -> pbds.GetGroupByNameReq + 176, // 248: pbds.Data.UpdateGroup:input_type -> pbds.UpdateGroupReq + 177, // 249: pbds.Data.DeleteGroup:input_type -> pbds.DeleteGroupReq + 178, // 250: pbds.Data.CountGroupsReleasedApps:input_type -> pbds.CountGroupsReleasedAppsReq + 180, // 251: pbds.Data.ListGroupRleasesdApps:input_type -> pbds.ListGroupRleasesdAppsReq + 182, // 252: pbds.Data.Publish:input_type -> pbds.PublishReq + 183, // 253: pbds.Data.GenerateReleaseAndPublish:input_type -> pbds.GenerateReleaseAndPublishReq + 7, // 254: pbds.Data.CreateCredential:input_type -> pbds.CreateCredentialReq + 8, // 255: pbds.Data.ListCredentials:input_type -> pbds.ListCredentialReq + 11, // 256: pbds.Data.DeleteCredential:input_type -> pbds.DeleteCredentialReq + 10, // 257: pbds.Data.UpdateCredential:input_type -> pbds.UpdateCredentialReq + 4, // 258: pbds.Data.ListCredentialScopes:input_type -> pbds.ListCredentialScopesReq + 0, // 259: pbds.Data.UpdateCredentialScopes:input_type -> pbds.UpdateCredentialScopesReq + 185, // 260: pbds.Data.ListInstances:input_type -> pbds.ListInstancesReq + 188, // 261: pbds.Data.FetchInstanceInfo:input_type -> pbds.FetchInstanceInfoReq + 191, // 262: pbds.Data.Ping:input_type -> pbds.PingMsg + 13, // 263: pbds.Data.CreateApp:output_type -> pbds.CreateResp + 275, // 264: pbds.Data.UpdateApp:output_type -> pbbase.EmptyResp + 275, // 265: pbds.Data.DeleteApp:output_type -> pbbase.EmptyResp + 209, // 266: pbds.Data.GetApp:output_type -> pbapp.App + 209, // 267: pbds.Data.GetAppByID:output_type -> pbapp.App + 209, // 268: pbds.Data.GetAppByName:output_type -> pbapp.App + 23, // 269: pbds.Data.ListAppsRest:output_type -> pbds.ListAppsResp + 25, // 270: pbds.Data.ListAppsByIDs:output_type -> pbds.ListAppsByIDsResp + 13, // 271: pbds.Data.CreateConfigItem:output_type -> pbds.CreateResp + 275, // 272: pbds.Data.BatchUpsertConfigItems:output_type -> pbbase.EmptyResp + 275, // 273: pbds.Data.UpdateConfigItem:output_type -> pbbase.EmptyResp + 275, // 274: pbds.Data.DeleteConfigItem:output_type -> pbbase.EmptyResp + 213, // 275: pbds.Data.GetConfigItem:output_type -> pbci.ConfigItem + 32, // 276: pbds.Data.ListConfigItems:output_type -> pbds.ListConfigItemsResp + 34, // 277: pbds.Data.ListReleasedConfigItems:output_type -> pbds.ListReleasedConfigItemsResp + 36, // 278: pbds.Data.ListConfigItemCount:output_type -> pbds.ListConfigItemCountResp + 275, // 279: pbds.Data.UpdateConfigHook:output_type -> pbbase.EmptyResp + 13, // 280: pbds.Data.CreateContent:output_type -> pbds.CreateResp + 276, // 281: pbds.Data.GetContent:output_type -> pbcontent.Content + 13, // 282: pbds.Data.CreateCommit:output_type -> pbds.CreateResp + 277, // 283: pbds.Data.GetLatestCommit:output_type -> pbcommit.Commit + 13, // 284: pbds.Data.CreateRelease:output_type -> pbds.CreateResp + 43, // 285: pbds.Data.ListReleases:output_type -> pbds.ListReleasesResp + 221, // 286: pbds.Data.GetReleaseByName:output_type -> pbrelease.Release + 214, // 287: pbds.Data.GetReleasedConfigItem:output_type -> pbrci.ReleasedConfigItem + 13, // 288: pbds.Data.CreateHook:output_type -> pbds.CreateResp + 52, // 289: pbds.Data.ListHooks:output_type -> pbds.ListHooksResp + 275, // 290: pbds.Data.DeleteHook:output_type -> pbbase.EmptyResp + 53, // 291: pbds.Data.ListHookTags:output_type -> pbds.ListHookTagResp + 55, // 292: pbds.Data.ListHookReferences:output_type -> pbds.ListHookReferencesResp + 49, // 293: pbds.Data.GetHook:output_type -> pbds.GetHookResp + 13, // 294: pbds.Data.CreateHookRevision:output_type -> pbds.CreateResp + 59, // 295: pbds.Data.ListHookRevisions:output_type -> pbds.ListHookRevisionsResp + 273, // 296: pbds.Data.GetHookRevisionByID:output_type -> pbhr.HookRevision + 275, // 297: pbds.Data.DeleteHookRevision:output_type -> pbbase.EmptyResp + 275, // 298: pbds.Data.PublishHookRevision:output_type -> pbbase.EmptyResp + 273, // 299: pbds.Data.GetHookRevisionByPubState:output_type -> pbhr.HookRevision + 275, // 300: pbds.Data.UpdateHookRevision:output_type -> pbbase.EmptyResp + 66, // 301: pbds.Data.ListHookRevisionReferences:output_type -> pbds.ListHookRevisionReferencesResp + 68, // 302: pbds.Data.GetReleaseHook:output_type -> pbds.GetReleaseHookResp + 13, // 303: pbds.Data.CreateTemplateSpace:output_type -> pbds.CreateResp + 71, // 304: pbds.Data.ListTemplateSpaces:output_type -> pbds.ListTemplateSpacesResp + 275, // 305: pbds.Data.UpdateTemplateSpace:output_type -> pbbase.EmptyResp + 275, // 306: pbds.Data.DeleteTemplateSpace:output_type -> pbbase.EmptyResp + 74, // 307: pbds.Data.GetAllBizsOfTmplSpaces:output_type -> pbds.GetAllBizsOfTmplSpacesResp + 13, // 308: pbds.Data.CreateDefaultTmplSpace:output_type -> pbds.CreateResp + 77, // 309: pbds.Data.ListTmplSpacesByIDs:output_type -> pbds.ListTmplSpacesByIDsResp + 13, // 310: pbds.Data.CreateTemplate:output_type -> pbds.CreateResp + 80, // 311: pbds.Data.ListTemplates:output_type -> pbds.ListTemplatesResp + 275, // 312: pbds.Data.UpdateTemplate:output_type -> pbbase.EmptyResp + 275, // 313: pbds.Data.DeleteTemplate:output_type -> pbbase.EmptyResp + 275, // 314: pbds.Data.BatchDeleteTemplate:output_type -> pbbase.EmptyResp + 275, // 315: pbds.Data.AddTmplsToTmplSets:output_type -> pbbase.EmptyResp + 275, // 316: pbds.Data.DeleteTmplsFromTmplSets:output_type -> pbbase.EmptyResp + 87, // 317: pbds.Data.ListTemplatesByIDs:output_type -> pbds.ListTemplatesByIDsResp + 89, // 318: pbds.Data.ListTemplatesNotBound:output_type -> pbds.ListTemplatesNotBoundResp + 91, // 319: pbds.Data.ListTmplsOfTmplSet:output_type -> pbds.ListTmplsOfTmplSetResp + 13, // 320: pbds.Data.CreateTemplateRevision:output_type -> pbds.CreateResp + 94, // 321: pbds.Data.ListTemplateRevisions:output_type -> pbds.ListTemplateRevisionsResp + 275, // 322: pbds.Data.DeleteTemplateRevision:output_type -> pbbase.EmptyResp + 97, // 323: pbds.Data.ListTemplateRevisionsByIDs:output_type -> pbds.ListTemplateRevisionsByIDsResp + 99, // 324: pbds.Data.ListTmplRevisionNamesByTmplIDs:output_type -> pbds.ListTmplRevisionNamesByTmplIDsResp + 13, // 325: pbds.Data.CreateTemplateSet:output_type -> pbds.CreateResp + 102, // 326: pbds.Data.ListTemplateSets:output_type -> pbds.ListTemplateSetsResp + 275, // 327: pbds.Data.UpdateTemplateSet:output_type -> pbbase.EmptyResp + 275, // 328: pbds.Data.DeleteTemplateSet:output_type -> pbbase.EmptyResp + 106, // 329: pbds.Data.ListAppTemplateSets:output_type -> pbds.ListAppTemplateSetsResp + 108, // 330: pbds.Data.ListTemplateSetsByIDs:output_type -> pbds.ListTemplateSetsByIDsResp + 110, // 331: pbds.Data.ListTemplateSetBriefInfoByIDs:output_type -> pbds.ListTemplateSetBriefInfoByIDsResp + 112, // 332: pbds.Data.ListTmplSetsOfBiz:output_type -> pbds.ListTmplSetsOfBizResp + 13, // 333: pbds.Data.CreateAppTemplateBinding:output_type -> pbds.CreateResp + 115, // 334: pbds.Data.ListAppTemplateBindings:output_type -> pbds.ListAppTemplateBindingsResp + 275, // 335: pbds.Data.UpdateAppTemplateBinding:output_type -> pbbase.EmptyResp + 275, // 336: pbds.Data.DeleteAppTemplateBinding:output_type -> pbbase.EmptyResp + 119, // 337: pbds.Data.ListAppBoundTmplRevisions:output_type -> pbds.ListAppBoundTmplRevisionsResp + 121, // 338: pbds.Data.ListReleasedAppBoundTmplRevisions:output_type -> pbds.ListReleasedAppBoundTmplRevisionsResp + 123, // 339: pbds.Data.GetReleasedAppBoundTmplRevision:output_type -> pbds.GetReleasedAppBoundTmplRevisionResp + 125, // 340: pbds.Data.CheckAppTemplateBinding:output_type -> pbds.CheckAppTemplateBindingResp + 127, // 341: pbds.Data.ExtractAppTmplVariables:output_type -> pbds.ExtractAppTmplVariablesResp + 129, // 342: pbds.Data.GetAppTmplVariableRefs:output_type -> pbds.GetAppTmplVariableRefsResp + 131, // 343: pbds.Data.GetReleasedAppTmplVariableRefs:output_type -> pbds.GetReleasedAppTmplVariableRefsResp + 275, // 344: pbds.Data.UpdateAppTmplVariables:output_type -> pbbase.EmptyResp + 134, // 345: pbds.Data.ListAppTmplVariables:output_type -> pbds.ListAppTmplVariablesResp + 136, // 346: pbds.Data.ListReleasedAppTmplVariables:output_type -> pbds.ListReleasedAppTmplVariablesResp + 138, // 347: pbds.Data.ListTmplBoundCounts:output_type -> pbds.ListTmplBoundCountsResp + 140, // 348: pbds.Data.ListTmplRevisionBoundCounts:output_type -> pbds.ListTmplRevisionBoundCountsResp + 142, // 349: pbds.Data.ListTmplSetBoundCounts:output_type -> pbds.ListTmplSetBoundCountsResp + 144, // 350: pbds.Data.ListTmplBoundUnnamedApps:output_type -> pbds.ListTmplBoundUnnamedAppsResp + 146, // 351: pbds.Data.ListTmplBoundNamedApps:output_type -> pbds.ListTmplBoundNamedAppsResp + 148, // 352: pbds.Data.ListTmplBoundTmplSets:output_type -> pbds.ListTmplBoundTmplSetsResp + 150, // 353: pbds.Data.ListMultiTmplBoundTmplSets:output_type -> pbds.ListMultiTmplBoundTmplSetsResp + 152, // 354: pbds.Data.ListTmplRevisionBoundUnnamedApps:output_type -> pbds.ListTmplRevisionBoundUnnamedAppsResp + 154, // 355: pbds.Data.ListTmplRevisionBoundNamedApps:output_type -> pbds.ListTmplRevisionBoundNamedAppsResp + 156, // 356: pbds.Data.ListTmplSetBoundUnnamedApps:output_type -> pbds.ListTmplSetBoundUnnamedAppsResp + 158, // 357: pbds.Data.ListMultiTmplSetBoundUnnamedApps:output_type -> pbds.ListMultiTmplSetBoundUnnamedAppsResp + 160, // 358: pbds.Data.ListTmplSetBoundNamedApps:output_type -> pbds.ListTmplSetBoundNamedAppsResp + 162, // 359: pbds.Data.ListLatestTmplBoundUnnamedApps:output_type -> pbds.ListLatestTmplBoundUnnamedAppsResp + 13, // 360: pbds.Data.CreateTemplateVariable:output_type -> pbds.CreateResp + 167, // 361: pbds.Data.ListTemplateVariables:output_type -> pbds.ListTemplateVariablesResp + 275, // 362: pbds.Data.UpdateTemplateVariable:output_type -> pbbase.EmptyResp + 275, // 363: pbds.Data.DeleteTemplateVariable:output_type -> pbbase.EmptyResp + 165, // 364: pbds.Data.ImportTemplateVariables:output_type -> pbds.ImportTemplateVariablesResp + 13, // 365: pbds.Data.CreateGroup:output_type -> pbds.CreateResp + 172, // 366: pbds.Data.ListAllGroups:output_type -> pbds.ListAllGroupsResp + 174, // 367: pbds.Data.ListAppGroups:output_type -> pbds.ListAppGroupsResp + 269, // 368: pbds.Data.GetGroupByName:output_type -> pbgroup.Group + 275, // 369: pbds.Data.UpdateGroup:output_type -> pbbase.EmptyResp + 275, // 370: pbds.Data.DeleteGroup:output_type -> pbbase.EmptyResp + 179, // 371: pbds.Data.CountGroupsReleasedApps:output_type -> pbds.CountGroupsReleasedAppsResp + 181, // 372: pbds.Data.ListGroupRleasesdApps:output_type -> pbds.ListGroupRleasesdAppsResp + 184, // 373: pbds.Data.Publish:output_type -> pbds.PublishResp + 184, // 374: pbds.Data.GenerateReleaseAndPublish:output_type -> pbds.PublishResp + 13, // 375: pbds.Data.CreateCredential:output_type -> pbds.CreateResp + 9, // 376: pbds.Data.ListCredentials:output_type -> pbds.ListCredentialResp + 275, // 377: pbds.Data.DeleteCredential:output_type -> pbbase.EmptyResp + 275, // 378: pbds.Data.UpdateCredential:output_type -> pbbase.EmptyResp + 5, // 379: pbds.Data.ListCredentialScopes:output_type -> pbds.ListCredentialScopesResp + 1, // 380: pbds.Data.UpdateCredentialScopes:output_type -> pbds.UpdateCredentialScopesResp + 186, // 381: pbds.Data.ListInstances:output_type -> pbds.ListInstancesResp + 189, // 382: pbds.Data.FetchInstanceInfo:output_type -> pbds.FetchInstanceInfoResp + 191, // 383: pbds.Data.Ping:output_type -> pbds.PingMsg + 263, // [263:384] is the sub-list for method output_type + 142, // [142:263] is the sub-list for method input_type + 142, // [142:142] is the sub-list for extension type_name + 142, // [142:142] is the sub-list for extension extendee + 0, // [0:142] is the sub-list for field type_name } func init() { file_data_service_proto_init() } diff --git a/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.proto b/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.proto index ae3fb74d8a..f762bf6d89 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.proto +++ b/bcs-services/bcs-bscp/pkg/protocol/data-service/data_service.proto @@ -1350,23 +1350,27 @@ message ListGroupRleasesdAppsResp { } message PublishReq { - uint32 biz_id = 1; - uint32 app_id = 2; - uint32 release_id = 3; - string memo = 4; - bool all = 5; - bool default = 6; - repeated uint32 groups = 7; + uint32 biz_id = 1; + uint32 app_id = 2; + uint32 release_id = 3; + string memo = 4; + bool all = 5; + string gray_publish_mode = 6; + bool default = 7; + repeated uint32 groups = 8; + repeated google.protobuf.Struct labels = 9; } message GenerateReleaseAndPublishReq { - uint32 biz_id = 1; - uint32 app_id = 2; - string release_name = 3; - string release_memo = 4; - bool all = 5; - repeated string groups = 6; - repeated pbtv.TemplateVariableSpec variables = 7; + uint32 biz_id = 1; + uint32 app_id = 2; + string release_name = 3; + string release_memo = 4; + repeated pbtv.TemplateVariableSpec variables = 5; + bool all = 6; + string gray_publish_mode = 7; + repeated string groups = 8; + repeated google.protobuf.Struct labels = 9; } message PublishResp { diff --git a/bcs-services/bcs-bscp/pkg/types/publish.go b/bcs-services/bcs-bscp/pkg/types/publish.go index 59ae0bbef0..233f60c5e8 100644 --- a/bcs-services/bcs-bscp/pkg/types/publish.go +++ b/bcs-services/bcs-bscp/pkg/types/publish.go @@ -32,7 +32,7 @@ type PublishOption struct { } // Validate options is valid or not. -func (ps PublishOption) Validate() error { +func (ps *PublishOption) Validate() error { if ps.BizID <= 0 { return errf.New(errf.InvalidParameter, "biz_id is invalid") } From b18974c4dac9b7ad3af1f1a522fe1b801a113300 Mon Sep 17 00:00:00 2001 From: LidolLxf <130628034+LidolLxf@users.noreply.github.com> Date: Mon, 23 Oct 2023 16:37:29 +0800 Subject: [PATCH 28/28] =?UTF-8?q?bcs-webconsole=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=BA=93=E7=BB=9F=E4=B8=80&=E8=BF=94=E5=9B=9E=E9=A3=8E?= =?UTF-8?q?=E6=A0=BC=E7=BB=9F=E4=B8=80=20(#2687)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * bcs-webconsole 日志库统一&返回风格统一 * bcs-webconsole 日志库统一&返回风格统一优化 * bcs-webconsole 日志库统一&返回风格统一优化 --- .../bcs-webconsole/console/api/service.go | 146 +++++------------- .../bcs-webconsole/console/api/websocket.go | 4 +- .../console/audit/record/recorder.go | 10 +- .../console/audit/record/uploader.go | 20 +-- .../console/components/client.go | 10 +- .../bcs-webconsole/console/manager/manager.go | 7 +- .../console/repository/bkrepo.go | 6 +- .../bcs-webconsole/console/rest/rest.go | 17 +- .../bcs-webconsole/console/web/service.go | 13 +- .../bcs-webconsole/console/web/user.go | 8 +- bcs-services/bcs-webconsole/go.mod | 2 +- bcs-services/bcs-webconsole/main.go | 5 +- bcs-services/bcs-webconsole/route/audit.go | 4 +- 13 files changed, 99 insertions(+), 153 deletions(-) diff --git a/bcs-services/bcs-webconsole/console/api/service.go b/bcs-services/bcs-webconsole/console/api/service.go index 52c2026452..fe6d48d046 100644 --- a/bcs-services/bcs-webconsole/console/api/service.go +++ b/bcs-services/bcs-webconsole/console/api/service.go @@ -18,7 +18,6 @@ import ( "bytes" "context" "io" - "net/http" "net/url" "path" "strconv" @@ -88,27 +87,19 @@ func (s service) RegisterRoute(router gin.IRoutes) { // ListClusters 集群列表 func (s *service) ListClusters(c *gin.Context) { - authCtx := route.MustGetAuthContext(c) - projectId := c.Param("projectId") project, err := bcs.GetProject(c.Request.Context(), config.G.BCS, projectId) if err != nil { - APIError(c, i18n.GetMessage(c, "项目不正确")) + rest.APIError(c, i18n.GetMessage(c, "项目不正确")) return } clusters, err := bcs.ListClusters(c.Request.Context(), project.ProjectId) if err != nil { - APIError(c, i18n.GetMessage(c, err.Error())) + rest.APIError(c, i18n.GetMessage(c, err.Error())) return } - data := types.APIResponse{ - Data: clusters, - Code: types.NoError, - Message: i18n.GetMessage(c, "获取集群成功"), - RequestID: authCtx.RequestId, - } - c.JSON(http.StatusOK, data) + rest.APIOK(c, i18n.GetMessage(c, "获取集群成功"), clusters) } // CreateWebConsoleSession 创建websocket session @@ -143,7 +134,7 @@ func (s *service) CreateWebConsoleSession(c *gin.Context) { return }() if err != nil { - APIError(c, i18n.GetMessage(c, err.Error())) + rest.APIError(c, i18n.GetMessage(c, err.Error())) return } @@ -153,21 +144,15 @@ func (s *service) CreateWebConsoleSession(c *gin.Context) { sessionId, err := sessions.NewStore().WebSocketScope().Set(c.Request.Context(), podCtx) if err != nil { - msg := i18n.GetMessage(c, "获取session失败{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "获取session失败{}", err)) return } - data := types.APIResponse{ - Data: map[string]string{ - "session_id": sessionId, - "ws_url": makeWebSocketURL(sessionId, consoleQuery.Lang, false), - }, - Code: types.NoError, - Message: i18n.GetMessage(c, "获取session成功"), - RequestID: authCtx.RequestId, + data := map[string]string{ + "session_id": sessionId, + "ws_url": makeWebSocketURL(sessionId, consoleQuery.Lang, false), } - c.JSON(http.StatusOK, data) + rest.APIOK(c, i18n.GetMessage(c, "获取session成功"), data) } // UploadHandler 上传文件 @@ -179,30 +164,30 @@ func (s *service) UploadHandler(c *gin.Context) { sessionId := c.Param("sessionId") data := types.APIResponse{RequestID: authCtx.RequestId} if uploadPath == "" { - uploadErrorHandler(c, authCtx, "请先输入上传路径") + rest.APIError(c, i18n.GetMessage(c, "请先输入上传路径")) return } err := checkFileExists(uploadPath, sessionId) if err != nil { - uploadErrorHandler(c, authCtx, "目标路径不存在") + rest.APIError(c, i18n.GetMessage(c, "目标路径不存在")) return } err = checkPathIsDir(uploadPath, sessionId) if err != nil { - uploadErrorHandler(c, authCtx, "目标路径不存在") + rest.APIError(c, i18n.GetMessage(c, "目标路径不存在")) return } file, err := c.FormFile("file") if err != nil { logger.Errorf("get file from request failed, err: %s", err.Error()) - uploadErrorHandler(c, authCtx, "解析上传文件失败") + rest.APIError(c, i18n.GetMessage(c, "解析上传文件失败")) return } opened, err := file.Open() if err != nil { logger.Errorf("open file from request failed, err: %s", err.Error()) - uploadErrorHandler(c, authCtx, "解析上传文件失败") + rest.APIError(c, i18n.GetMessage(c, "解析上传文件失败")) return } defer opened.Close() @@ -210,14 +195,14 @@ func (s *service) UploadHandler(c *gin.Context) { podCtx, err := sessions.NewStore().WebSocketScope().Get(c.Request.Context(), sessionId) if err != nil { logger.Errorf("get pod context by session %s failed, err: %s", sessionId, err.Error()) - uploadErrorHandler(c, authCtx, "获取pod信息失败") + rest.APIError(c, i18n.GetMessage(c, "获取pod信息失败")) return } reader, writer := io.Pipe() pe, err := podCtx.NewPodExec() if err != nil { logger.Errorf("new pod exec failed, err: %s", err.Error()) - uploadErrorHandler(c, authCtx, "执行上传命令失败") + rest.APIError(c, i18n.GetMessage(c, "执行上传命令失败")) return } errChan := make(chan error, 1) @@ -258,33 +243,22 @@ func (s *service) UploadHandler(c *gin.Context) { if err = pe.Exec(); err != nil { logger.Errorf("pod exec failed, err: %s", err.Error()) - uploadErrorHandler(c, authCtx, "执行上传命令失败") + rest.APIError(c, i18n.GetMessage(c, "执行上传命令失败")) return } err, ok := <-errChan if ok && err != nil { logger.Errorf("writer to tar failed, err: %s", err.Error()) - uploadErrorHandler(c, authCtx, "文件上传失败") + rest.APIError(c, i18n.GetMessage(c, "文件上传失败")) return } - data.Code = types.NoError - data.Message = i18n.GetMessage(c, "文件上传成功") - c.JSON(http.StatusOK, data) -} -// uploadErrorHandler 上传文件时,错误信息处理 -func uploadErrorHandler(c *gin.Context, authCtx *route.AuthContext, msg string) { - data := types.APIResponse{RequestID: authCtx.RequestId} - data.Code = types.ApiErrorCode - data.Message = i18n.GetMessage(c, msg) - c.JSON(http.StatusOK, data) + rest.APIOK(c, i18n.GetMessage(c, "文件上传成功"), data) } // DownloadHandler 下载文件 func (s *service) DownloadHandler(c *gin.Context) { - authCtx := route.MustGetAuthContext(c) - data := types.APIResponse{RequestID: authCtx.RequestId} downloadPath := c.Query("download_path") sessionId := c.Param("sessionId") reader, writer := io.Pipe() @@ -321,9 +295,7 @@ func (s *service) DownloadHandler(c *gin.Context) { tarReader := tar.NewReader(reader) _, err := tarReader.Next() if err != nil { - data.Code = types.ApiErrorCode - data.Message = i18n.GetMessage(c, "复制文件流失败") - c.JSON(http.StatusOK, data) + rest.APIError(c, i18n.GetMessage(c, "复制文件流失败")) return } fileName := downloadPath[strings.LastIndex(downloadPath, "/")+1:] @@ -344,26 +316,22 @@ func (s *service) CheckDownloadHandler(c *gin.Context) { sessionId := c.Param("sessionId") if err := checkFileExists(downloadPath, sessionId); err != nil { - data.Message = i18n.GetMessage(c, "目标文件不存在") - c.JSON(http.StatusOK, data) + rest.APIError(c, i18n.GetMessage(c, "目标文件不存在")) return } if err := checkPathIsDir(downloadPath, sessionId); err == nil { - data.Message = i18n.GetMessage(c, "暂不支持文件夹下载") - c.JSON(http.StatusOK, data) + rest.APIError(c, i18n.GetMessage(c, "暂不支持文件夹下载")) return } if err := checkFileSize(downloadPath, sessionId, FileSizeLimits*FileSizeUnitMb); err != nil { - data.Message = i18n.GetMessage(c, "文件不能超过{}MB", map[string]int{"fileLimit": FileSizeLimits}) - c.JSON(http.StatusOK, data) + rest.APIError(c, + i18n.GetMessage(c, "文件不能超过{}MB", map[string]int{"fileLimit": FileSizeLimits})) return } - data.Code = types.NoError - data.Message = i18n.GetMessage(c, "文件可以下载") - c.JSON(http.StatusOK, data) + rest.APIOK(c, i18n.GetMessage(c, "文件可以下载"), data) } func checkPathIsDir(path, sessionID string) error { @@ -444,8 +412,7 @@ func checkFileSize(path, sessionID string, sizeLimit int) error { func (s *service) CreatePortalSession(c *gin.Context) { authCtx := route.MustGetAuthContext(c) if authCtx.BindSession == nil { - msg := i18n.GetMessage(c, "session_id不合法或已经过期") - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "session_id不合法或已经过期")) return } @@ -453,23 +420,17 @@ func (s *service) CreatePortalSession(c *gin.Context) { sessionId, err := sessions.NewStore().WebSocketScope().Set(c.Request.Context(), podCtx) if err != nil { - msg := i18n.GetMessage(c, "获取session失败{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "获取session失败{}", err)) return } lang := c.Query("lang") lang = strings.TrimSuffix(lang, "/") - data := types.APIResponse{ - Data: map[string]string{ - "session_id": sessionId, - "ws_url": makeWebSocketURL(sessionId, lang, false), - }, - Code: types.NoError, - Message: i18n.GetMessage(c, "获取session成功"), - RequestID: authCtx.RequestId, - } - c.JSON(http.StatusOK, data) + data := map[string]string{ + "session_id": sessionId, + "ws_url": makeWebSocketURL(sessionId, lang, false), + } + rest.APIOK(c, i18n.GetMessage(c, "获取session成功"), data) } // CreateContainerPortalSession 创建 webconsole url api @@ -480,29 +441,26 @@ func (s *service) CreateContainerPortalSession(c *gin.Context) { err := c.BindJSON(consoleQuery) if err != nil { - msg := i18n.GetMessage(c, "请求参数错误{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "请求参数错误{}", err)) return } if e := consoleQuery.Validate(); e != nil { - msg := i18n.GetMessage(c, "请求参数错误{}", e) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "请求参数错误{}", e)) return } // 自定义命令行 commands, err := consoleQuery.SplitCommand() if err != nil { - msg := i18n.GetMessage(c, "请求参数错误, command not valid{}", err) - APIError(c, msg) + rest.APIError( + c, i18n.GetMessage(c, "请求参数错误, command not valid{}", err)) return } podCtx, err := podmanager.QueryOpenPodCtx(c.Request.Context(), authCtx.ClusterId, consoleQuery) if err != nil { - msg := i18n.GetMessage(c, "请求参数错误{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "请求参数错误{}", err)) return } @@ -519,8 +477,7 @@ func (s *service) CreateContainerPortalSession(c *gin.Context) { sessionId, err := sessions.NewStore().OpenAPIScope().Set(c.Request.Context(), podCtx) if err != nil { - msg := i18n.GetMessage(c, "获取session失败{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "获取session失败{}", err)) return } @@ -533,22 +490,14 @@ func (s *service) CreateContainerPortalSession(c *gin.Context) { if consoleQuery.WSAcquire { wsSessionId, err := sessions.NewStore().WebSocketScope().Set(c.Request.Context(), podCtx) if err != nil { - msg := i18n.GetMessage(c, "获取session失败{}", err) - APIError(c, msg) + rest.APIError(c, i18n.GetMessage(c, "获取session失败{}", err)) return } data["ws_url"] = makeWebSocketURL(wsSessionId, "", true) } - respData := types.APIResponse{ - Data: data, - Code: types.NoError, - Message: i18n.GetMessage(c, "获取session成功"), - RequestID: authCtx.RequestId, - } - - c.JSON(http.StatusOK, respData) + rest.APIOK(c, i18n.GetMessage(c, "获取session成功"), data) } // makeWebConsoleURL webconsole 页面访问地址 @@ -595,18 +544,5 @@ func makeWebSocketURL(sessionId, lang string, withScheme bool) string { // CreateClusterPortalSession 集群级别的 webconsole openapi func (s *service) CreateClusterPortalSession(c *gin.Context) { - rest.AbortWithBadRequestError(c, errors.New("Not implemented")) -} - -// APIError 简易的错误返回 -func APIError(c *gin.Context, msg string) { // nolint - authCtx := route.MustGetAuthContext(c) - - data := types.APIResponse{ - Code: types.ApiErrorCode, - Message: msg, - RequestID: authCtx.RequestId, - } - - c.AbortWithStatusJSON(http.StatusBadRequest, data) + rest.APIError(c, "Not implemented") } diff --git a/bcs-services/bcs-webconsole/console/api/websocket.go b/bcs-services/bcs-webconsole/console/api/websocket.go index 5e48ffda4b..cdbe591934 100644 --- a/bcs-services/bcs-webconsole/console/api/websocket.go +++ b/bcs-services/bcs-webconsole/console/api/websocket.go @@ -62,13 +62,13 @@ func (q *wsQuery) GetTerminalSize() *types.TerminalSize { func (s *service) BCSWebSocketHandler(c *gin.Context) { // nolint // 还未建立 WebSocket 连接, 使用 Json 返回 if !websocket.IsWebSocketUpgrade(c.Request) { - rest.AbortWithBadRequestError(c, errors.New("invalid websocket connection")) + rest.APIError(c, "invalid websocket connection") return } ws, err := upgrader.Upgrade(c.Writer, c.Request, nil) if err != nil { - rest.AbortWithBadRequestError(c, errors.Wrap(err, "upgrade websocket connection")) + rest.APIError(c, errors.Wrap(err, "upgrade websocket connection").Error()) return } defer ws.Close() // nolint diff --git a/bcs-services/bcs-webconsole/console/audit/record/recorder.go b/bcs-services/bcs-webconsole/console/audit/record/recorder.go index 9dcfeabc6a..f9881ed1e1 100644 --- a/bcs-services/bcs-webconsole/console/audit/record/recorder.go +++ b/bcs-services/bcs-webconsole/console/audit/record/recorder.go @@ -21,7 +21,7 @@ import ( "sync" "time" - "k8s.io/klog/v2" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/audit/asciinema" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/config" @@ -54,7 +54,7 @@ func (c *castFile) clean() { } if err := os.Remove(c.absPath); err != nil { - klog.Error("remove file %s, err: %s", c.absPath, err) + blog.Error("remove file %s, err: %s", c.absPath, err) } } @@ -184,7 +184,7 @@ func (r *ReplyRecorder) End() { r.uploader.setState(r.cast.filePath, terminationState) r.Writer = nil - klog.Infof("set file %s state to termination", r.cast.filePath) + blog.Infof("set file %s state to termination", r.cast.filePath) }) } @@ -200,7 +200,7 @@ func RecordOutputEvent(r *ReplyRecorder, p []byte) { // nolint } if err := r.Writer.WriteRow(p, asciinema.OutputEvent); err != nil { - klog.Errorf("session %s write replay row failed: %s", r.SessionID, err) + blog.Errorf("session %s write replay row failed: %s", r.SessionID, err) r.End() } @@ -218,7 +218,7 @@ func RecordResizeEvent(r *ReplyRecorder, p []byte) { // nolint } if err := r.Writer.WriteRow(p, asciinema.ResizeEvent); err != nil { - klog.Errorf("Session %s write replay row failed: %s", r.SessionID, err) + blog.Errorf("Session %s write replay row failed: %s", r.SessionID, err) r.End() } diff --git a/bcs-services/bcs-webconsole/console/audit/record/uploader.go b/bcs-services/bcs-webconsole/console/audit/record/uploader.go index 566b8b473a..7fa36ac050 100644 --- a/bcs-services/bcs-webconsole/console/audit/record/uploader.go +++ b/bcs-services/bcs-webconsole/console/audit/record/uploader.go @@ -22,7 +22,7 @@ import ( "sync" "time" - "k8s.io/klog/v2" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/config" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/repository" @@ -90,7 +90,7 @@ func (u *Uploader) setState(filePath string, s state) { // IntervalUpload 定时上传 func (u *Uploader) IntervalUpload(ctx context.Context) error { if !config.G.Audit.Enabled || u.storage == nil { - klog.Info("audit not enabled or storage type not set, uploader just ignore") + blog.Info("audit not enabled or storage type not set, uploader just ignore") return nil } @@ -103,21 +103,21 @@ func (u *Uploader) IntervalUpload(ctx context.Context) error { // 获取退出信号, 全部上传 result, err := u.batchUpload(true) if err != nil { - klog.Errorf("interval remain upload failed, err: %s", err) + blog.Errorf("interval remain upload failed, err: %s", err) return err } - klog.Infof("interval remain upload done, result: %s", result) + blog.Infof("interval remain upload done, result: %s", result) return nil case <-timer.C: result, err := u.batchUpload(false) if err != nil { - klog.Errorf("interval upload failed, err: %s", err) + blog.Errorf("interval upload failed, err: %s", err) continue } - klog.Infof("interval upload done, result: %s", result) + blog.Infof("interval upload done, result: %s", result) } } } @@ -187,7 +187,7 @@ func (u *Uploader) batchUpload(ignoreState bool) (*batchUploadResult, error) { ok, e := u.storage.IsExist(ctx, filePath) if e != nil { - klog.Errorf("check file exist err: %s", e) + blog.Errorf("check file exist err: %s", e) result.failed = append(result.failed, cast.filePath) return nil } @@ -201,7 +201,7 @@ func (u *Uploader) batchUpload(ignoreState bool) (*batchUploadResult, error) { if err := u.upload(cast); err != nil { result.failed = append(result.failed, cast.filePath) - klog.Errorf("upload file err: %s", err) + blog.Errorf("upload file err: %s", err) return nil } @@ -221,7 +221,7 @@ func (u *Uploader) upload(cast *castFile) error { u.setState(cast.filePath, uploadingState) if err := u.storage.UploadFile(ctx, cast.absPath, cast.filePath); err != nil { - klog.Errorf("upload file %s failed, err: %s", cast.filePath, err) + blog.Errorf("upload file %s failed, err: %s", cast.filePath, err) return err } @@ -229,7 +229,7 @@ func (u *Uploader) upload(cast *castFile) error { // 清理文件 cast.clean() - klog.Infof("upload file %s success", cast.filePath) + blog.Infof("upload file %s success", cast.filePath) return nil } diff --git a/bcs-services/bcs-webconsole/console/components/client.go b/bcs-services/bcs-webconsole/console/components/client.go index c35ce19321..c04a62866b 100644 --- a/bcs-services/bcs-webconsole/console/components/client.go +++ b/bcs-services/bcs-webconsole/console/components/client.go @@ -26,11 +26,11 @@ import ( "sync" "time" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/dustin/go-humanize" "github.com/go-resty/resty/v2" "github.com/pkg/errors" "google.golang.org/grpc/metadata" - "k8s.io/klog/v2" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/tracing" ) @@ -172,13 +172,13 @@ func restyResponseToCurl(resp *resty.Response) string { } func restyErrHook(r *resty.Request, err error) { - klog.Infof("[%s] REQ: %s", RequestIDValue(r.RawRequest.Context()), restyReqToCurl(r)) - klog.Infof("[%s] RESP: [err] %s", RequestIDValue(r.RawRequest.Context()), err) + blog.Infof("[%s] REQ: %s", RequestIDValue(r.RawRequest.Context()), restyReqToCurl(r)) + blog.Infof("[%s] RESP: [err] %s", RequestIDValue(r.RawRequest.Context()), err) } func restyAfterResponseHook(c *resty.Client, r *resty.Response) error { - klog.Infof("[%s] REQ: %s", RequestIDValue(r.Request.Context()), restyReqToCurl(r.Request)) - klog.Infof("[%s] RESP: %s", RequestIDValue(r.Request.Context()), restyResponseToCurl(r)) + blog.Infof("[%s] REQ: %s", RequestIDValue(r.Request.Context()), restyReqToCurl(r.Request)) + blog.Infof("[%s] RESP: %s", RequestIDValue(r.Request.Context()), restyResponseToCurl(r)) return nil } diff --git a/bcs-services/bcs-webconsole/console/manager/manager.go b/bcs-services/bcs-webconsole/console/manager/manager.go index 7f4d8d4327..e49ee26d23 100644 --- a/bcs-services/bcs-webconsole/console/manager/manager.go +++ b/bcs-services/bcs-webconsole/console/manager/manager.go @@ -25,7 +25,6 @@ import ( "github.com/gin-gonic/gin" "github.com/pborman/ansi" "github.com/pkg/errors" - "k8s.io/klog/v2" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/audit" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/audit/record" @@ -71,7 +70,7 @@ func NewConsoleManager(ctx context.Context, podCtx *types.PodContext, // 初始化 terminal record recorder, err := record.NewReplayRecord(ctx, mgr.podCtx, terminalSize) if err != nil { - klog.Errorf("init ReplayRecord failed, err %s", err) + logger.Errorf("init ReplayRecord failed, err %s", err) return nil, err } mgr.recorder = recorder @@ -102,7 +101,7 @@ func (c *ConsoleManager) HandleInputMsg(msg []byte) ([]byte, error) { // key 性能统计 if len(msg) > 0 && c.keyDec > 0 && msg[0] == c.keyDec { c.keyWaitingTime = now - klog.InfoS("tracing key input", "key", msg) + logger.Info("tracing key input", "key", msg) } // 命令行解析与审计 @@ -132,7 +131,7 @@ func (c *ConsoleManager) HandlePostOutputMsg(msg []byte) { // key 性能统计 if len(msg) > 0 && c.keyDec > 0 && msg[0] == c.keyDec { - klog.InfoS("tracing key output", "key", msg, "waiting", time.Since(c.keyWaitingTime)) + logger.Info("tracing key output", "key", msg, "waiting", time.Since(c.keyWaitingTime)) } } diff --git a/bcs-services/bcs-webconsole/console/repository/bkrepo.go b/bcs-services/bcs-webconsole/console/repository/bkrepo.go index deb7e82f01..ea825e4a32 100644 --- a/bcs-services/bcs-webconsole/console/repository/bkrepo.go +++ b/bcs-services/bcs-webconsole/console/repository/bkrepo.go @@ -21,7 +21,7 @@ import ( "net/http" "os" - "k8s.io/klog/v2" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/config" ) @@ -53,7 +53,7 @@ func (b *bkrepoStorage) UploadFile(ctx context.Context, localFile, filePath stri } if resp.StatusCode != 200 { body, _ := io.ReadAll(resp.Body) - klog.Errorf("Upload file failed, resp: %s\n", string(body)) + blog.Errorf("Upload file failed, resp: %s\n", string(body)) return fmt.Errorf("upload file failed, Err code: %v", resp.StatusCode) } return nil @@ -175,7 +175,7 @@ func (b *bkrepoStorage) DownloadFile(ctx context.Context, filePath string) (io.R if resp.StatusCode != 200 { body, _ := io.ReadAll(resp.Body) - klog.Errorf("Download file failed, resp: %s\n", string(body)) + blog.Errorf("Download file failed, resp: %s\n", string(body)) resp.Body.Close() return nil, fmt.Errorf("download file failed, Err code: %v", resp.StatusCode) } diff --git a/bcs-services/bcs-webconsole/console/rest/rest.go b/bcs-services/bcs-webconsole/console/rest/rest.go index ce34f5ff86..a89612e488 100644 --- a/bcs-services/bcs-webconsole/console/rest/rest.go +++ b/bcs-services/bcs-webconsole/console/rest/rest.go @@ -17,6 +17,9 @@ import ( "net/http" "github.com/gin-gonic/gin" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/types" + "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/route" ) // Result 返回的标准结构 @@ -27,8 +30,16 @@ type Result struct { Data interface{} `json:"data"` } -// AbortWithBadRequestError 错误返回 -func AbortWithBadRequestError(c *gin.Context, err error) { - result := Result{Code: 1400, Message: err.Error(), RequestId: ""} +// APIError 错误返回,兼容国际化 +func APIError(c *gin.Context, err string) { + requestId := route.MustGetAuthContext(c).RequestId + result := Result{Code: types.ApiErrorCode, Message: err, RequestId: requestId} c.AbortWithStatusJSON(http.StatusBadRequest, result) } + +// APIOK 正常返回 +func APIOK(c *gin.Context, message string, data interface{}) { + requestId := route.MustGetAuthContext(c).RequestId + result := Result{Code: types.NoError, Message: message, RequestId: requestId, Data: data} + c.AbortWithStatusJSON(http.StatusOK, result) +} diff --git a/bcs-services/bcs-webconsole/console/web/service.go b/bcs-services/bcs-webconsole/console/web/service.go index 554b43bf36..3816aa3d59 100644 --- a/bcs-services/bcs-webconsole/console/web/service.go +++ b/bcs-services/bcs-webconsole/console/web/service.go @@ -27,6 +27,7 @@ import ( "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/metrics" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/podmanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/repository" + "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/rest" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/tracing" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/route" ) @@ -71,12 +72,12 @@ func (s *service) ReplayFilesPageHandler(c *gin.Context) { folderName := c.Param("folder") storage, err := repository.NewProvider(config.G.Repository.StorageType) if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("Init storage err: %v\n", err)) + rest.APIError(c, fmt.Sprintf("Init storage err: %v\n", err)) return } fileNames, err := storage.ListFile(c, folderName) if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("List storage files err: %v\n", err)) + rest.APIError(c, fmt.Sprintf("List storage files err: %v\n", err)) return } data := gin.H{ @@ -91,12 +92,12 @@ func (s *service) ReplayFilesPageHandler(c *gin.Context) { func (s *service) ReplayFoldersPageHandler(c *gin.Context) { storage, err := repository.NewProvider(config.G.Repository.StorageType) if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("Init storage err: %v", err)) + rest.APIError(c, fmt.Sprintf("Init storage err: %v", err)) return } folderNames, err := storage.ListFolders(c, "") if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("List storage folder err: %v", err)) + rest.APIError(c, fmt.Sprintf("List storage folder err: %v", err)) return } data := gin.H{ @@ -126,12 +127,12 @@ func (s *service) PlayHandler(c *gin.Context) { filePath := path.Join(folder, file) storage, err := repository.NewProvider(config.G.Repository.StorageType) if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("Init storage err: %v\n", err)) + rest.APIError(c, fmt.Sprintf("Init storage err: %v\n", err)) return } resp, err := storage.DownloadFile(c, filePath) if err != nil { - c.JSON(http.StatusBadRequest, fmt.Sprintf("Download storage file err: %v\n", err)) + rest.APIError(c, fmt.Sprintf("Download storage file err: %v\n", err)) return } diff --git a/bcs-services/bcs-webconsole/console/web/user.go b/bcs-services/bcs-webconsole/console/web/user.go index ab6f786a03..cf3bf376e5 100644 --- a/bcs-services/bcs-webconsole/console/web/user.go +++ b/bcs-services/bcs-webconsole/console/web/user.go @@ -17,11 +17,11 @@ import ( "github.com/gin-gonic/gin" - "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/components/bcs" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/components/iam" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/config" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/i18n" + "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/rest" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/route" ) @@ -30,19 +30,19 @@ func (s *service) UserPermRequestRedirect(c *gin.Context) { projectId := c.Query("project_id") clusterId := c.Query("cluster_id") if projectId == "" { - api.APIError(c, i18n.GetMessage(c, "project_id is required")) + rest.APIError(c, i18n.GetMessage(c, "project_id is required")) return } project, err := bcs.GetProject(c.Request.Context(), config.G.BCS, projectId) if err != nil { - api.APIError(c, i18n.GetMessage(c, "项目不正确")) + rest.APIError(c, i18n.GetMessage(c, "项目不正确")) return } redirectUrl, err := iam.MakeResourceApplyUrl(c.Request.Context(), project.ProjectId, clusterId, route.GetNamespace(c), "") if err != nil { - api.APIError(c, i18n.GetMessage(c, err.Error())) + rest.APIError(c, i18n.GetMessage(c, err.Error())) return } diff --git a/bcs-services/bcs-webconsole/go.mod b/bcs-services/bcs-webconsole/go.mod index fb175ffb98..98db28e477 100644 --- a/bcs-services/bcs-webconsole/go.mod +++ b/bcs-services/bcs-webconsole/go.mod @@ -45,7 +45,6 @@ require ( k8s.io/api v0.23.1 k8s.io/apimachinery v0.23.1 k8s.io/client-go v0.23.1 - k8s.io/klog/v2 v2.100.1 sigs.k8s.io/yaml v1.2.0 ) @@ -164,6 +163,7 @@ require ( gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect k8s.io/klog v1.0.0 // indirect + k8s.io/klog/v2 v2.100.1 // indirect k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect moul.io/http2curl v1.0.0 // indirect diff --git a/bcs-services/bcs-webconsole/main.go b/bcs-services/bcs-webconsole/main.go index cf607327fc..f366d6cd99 100644 --- a/bcs-services/bcs-webconsole/main.go +++ b/bcs-services/bcs-webconsole/main.go @@ -21,7 +21,6 @@ import ( "time" logger "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "k8s.io/klog/v2" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/app" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/config" @@ -42,7 +41,7 @@ func main() { // 初始化 Tracer shutdown, err := tracing.InitTracing(config.G.Tracing) if err != nil { - klog.Info(err.Error()) + logger.Info(err.Error()) } if shutdown != nil { defer func() { @@ -50,7 +49,7 @@ func main() { defer cancel() if err := shutdown(timeoutCtx); err != nil { - klog.Infof("failed to shutdown TracerProvider: %s", err.Error()) + logger.Infof("failed to shutdown TracerProvider: %s", err.Error()) } }() } diff --git a/bcs-services/bcs-webconsole/route/audit.go b/bcs-services/bcs-webconsole/route/audit.go index c1d181e43f..4956de398b 100644 --- a/bcs-services/bcs-webconsole/route/audit.go +++ b/bcs-services/bcs-webconsole/route/audit.go @@ -17,9 +17,9 @@ import ( "encoding/json" "time" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-common/pkg/audit" "github.com/gin-gonic/gin" - "k8s.io/klog/v2" consoleAudit "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/audit" "github.com/Tencent/bk-bcs/bcs-services/bcs-webconsole/console/types" @@ -128,7 +128,7 @@ func addAudit(c *gin.Context, startTime, endTime time.Time, data *types.APIRespo err := consoleAudit.GetAuditClient().R(). SetContext(auditCtx).SetResource(resource).SetAction(action).SetResult(result).Do() if err != nil { - klog.Errorf("audit recorder err: %v", err) + blog.Errorf("audit recorder err: %v", err) } }