diff --git a/api/dataimport/for-trigger_test.go b/api/dataimport/for-trigger_test.go index fb9eeda7..ab072963 100644 --- a/api/dataimport/for-trigger_test.go +++ b/api/dataimport/for-trigger_test.go @@ -362,7 +362,7 @@ func Example_importForTrigger_OCS_DatasetEdit() { // |{"contentCounts": {"BulkSpectra": 2,"DwellSpectra": 0,"MaxSpectra": 2,"NormalSpectra": 242,"PseudoIntensities": 121},"creatorUserId": "PIXLISEImport","dataTypes": [{"count": 5,"dataType": "SD_IMAGE"},{"count": 1,"dataType": "SD_RGBU"},{"count": 242,"dataType": "SD_XRF"}],"id": "048300551","instrument": "PIXL_FM","instrumentConfig": "PIXL","meta": {"DriveId": "1712","RTT": "048300551","SCLK": "678031418","Site": "","SiteId": "4","Sol": "0125","Target": "","TargetId": "?"},"title": "Naltsos"} } -func printManualOKLogOutput(log *logger.StdOutLoggerForTest, db *mongo.Database, datasetId string, fileCount uint32) { +func printManualOKLogOutput(log *logger.StdOutLoggerForTest, db *mongo.Database, datasetId string, fileCount uint32, beamLocLBLFileName string, beamVersion uint32) { // Ensure these log msgs appeared... requiredLogs := []string{ "Downloading archived zip files...", @@ -380,6 +380,12 @@ func printManualOKLogOutput(log *logger.StdOutLoggerForTest, db *mongo.Database, "No auto-share destination found, so only importing user will be able to access this dataset.", } + if len(beamLocLBLFileName) > 0 { + requiredLogs = append(requiredLogs, fmt.Sprintf("WARNING: Beam location LBL file (%v) could not be read. Beam Version version is assumed to be: %v", beamLocLBLFileName, beamVersion)) + } else if beamVersion > 0 { + requiredLogs = append(requiredLogs, fmt.Sprintf("Saving as beam geometry tool version: %v", beamVersion)) + } + for _, msg := range requiredLogs { fmt.Printf("Logged \"%v\": %v\n", msg, log.LogContains(msg)) } @@ -412,7 +418,7 @@ func Example_importForTrigger_Manual_JPL() { fmt.Printf("Errors: %v, changes: %v, isUpdate: %v\n", err, result.WhatChanged, result.IsUpdate) - printManualOKLogOutput(log, db, "test1234", 3) + printManualOKLogOutput(log, db, "test1234", 3, "", 0) // Output: // Errors: , changes: unknown, isUpdate: false @@ -445,7 +451,7 @@ func Example_importForTrigger_Manual_SBU() { fmt.Printf("Errors: %v, changes: %v, isUpdate: %v\n", err, result.WhatChanged, result.IsUpdate) - printManualOKLogOutput(log, db, "test1234sbu", 4) + printManualOKLogOutput(log, db, "test1234sbu", 4, "", 0) // Output: // Errors: , changes: unknown, isUpdate: false @@ -478,7 +484,7 @@ func Example_ImportForTrigger_Manual_SBU_NoAutoShare() { fmt.Printf("Errors: %v, changes: %v, isUpdate: %v\n", err, result.WhatChanged, result.IsUpdate) - printManualOKLogOutput(log, db, "test1234sbu", 4) + printManualOKLogOutput(log, db, "test1234sbu", 4, "", 0) // Output: // Errors: , changes: unknown, isUpdate: false @@ -529,7 +535,41 @@ func Example_importForTrigger_Manual_EM() { fmt.Printf("Errors: %v, changes: %v, isUpdate: %v\n", err, result.WhatChanged, result.IsUpdate) - printManualOKLogOutput(log, db, "048300551", 3) + printManualOKLogOutput(log, db, "048300551", 3, "PE__0125_0678031418_000RXL_N004171204830055100910__J01.LBL", 2) + + // Output: + // Errors: , changes: unknown, isUpdate: false + // Logged "Downloading archived zip files...": true + // Logged "Downloaded 0 zip files, unzipped 0 files": true + // Logged "No zip files found in archive, dataset may have been manually uploaded. Trying to download...": true + // Logged "Dataset 048300551 downloaded 3 files from manual upload area": true + // Logged "Downloading pseudo-intensity ranges...": true + // Logged "Downloading user customisation files...": true + // Logged "Reading 1261 files from spectrum directory...": false + // Logged "Reading spectrum [1135/1260] 90%": false + // Logged "PMC 1261 has 4 MSA/spectrum entries": false + // Logged "WARNING: No main context image determined": false + // Logged "Diffraction db saved successfully": true + // Logged "Warning: No import.json found, defaults will be used": false + // Logged "No auto-share destination found, so only importing user will be able to access this dataset.": false + // Logged "WARNING: Beam location LBL file (PE__0125_0678031418_000RXL_N004171204830055100910__J01.LBL) could not be read. Beam Version version is assumed to be: 2": true + // |{"id":"048300551","title":"048300551","dataTypes":[{"dataType":"SD_IMAGE","count":4},{"dataType":"SD_XRF","count":242}],"instrument":"PIXL_EM","instrumentConfig":"PIXL-EM-E2E","meta":{"DriveId":"1712","RTT":"048300551","SCLK":"678031418","Site":"","SiteId":"4","Sol":"0125","Target":"","TargetId":"?"},"contentCounts":{"BulkSpectra":2,"DwellSpectra":0,"MaxSpectra":2,"NormalSpectra":242,"PseudoIntensities":121},"creatorUserId":"PIXLISEImport"} +} + +// Import a breadboard dataset from manual uploaded zip file +func Example_importForTrigger_Manual_EM_WithBeamV2() { + remoteFS, log, envName, configBucket, datasetBucket, manualBucket, db := initTest("ManualEM_Beamv2_OK", specialUserIds.PIXLISESystemUserId, "PIXLFMGroupId") + + trigger := `{ + "datasetID": "048300551", + "jobID": "dataimport-unittest048300551" +}` + + result, err := ImportForTrigger([]byte(trigger), envName, configBucket, datasetBucket, manualBucket, db, log, remoteFS) + + fmt.Printf("Errors: %v, changes: %v, isUpdate: %v\n", err, result.WhatChanged, result.IsUpdate) + + printManualOKLogOutput(log, db, "048300551", 3, "", 2) // Output: // Errors: , changes: unknown, isUpdate: false @@ -546,6 +586,7 @@ func Example_importForTrigger_Manual_EM() { // Logged "Diffraction db saved successfully": true // Logged "Warning: No import.json found, defaults will be used": false // Logged "No auto-share destination found, so only importing user will be able to access this dataset.": false + // Logged "Saving as beam geometry tool version: 2": true // |{"id":"048300551","title":"048300551","dataTypes":[{"dataType":"SD_IMAGE","count":4},{"dataType":"SD_XRF","count":242}],"instrument":"PIXL_EM","instrumentConfig":"PIXL-EM-E2E","meta":{"DriveId":"1712","RTT":"048300551","SCLK":"678031418","Site":"","SiteId":"4","Sol":"0125","Target":"","TargetId":"?"},"contentCounts":{"BulkSpectra":2,"DwellSpectra":0,"MaxSpectra":2,"NormalSpectra":242,"PseudoIntensities":121},"creatorUserId":"PIXLISEImport"} } diff --git a/api/dataimport/internal/converters/pixlfm/import.go b/api/dataimport/internal/converters/pixlfm/import.go index 145fcb3f..bddd3308 100644 --- a/api/dataimport/internal/converters/pixlfm/import.go +++ b/api/dataimport/internal/converters/pixlfm/import.go @@ -23,6 +23,7 @@ import ( "path" "path/filepath" "strings" + "unicode/utf8" "github.com/pixlise/core/v4/api/dataimport/internal/dataConvertModels" "github.com/pixlise/core/v4/api/dataimport/internal/importerutils" @@ -118,6 +119,7 @@ func (p PIXLFM) Import(importPath string, pseudoIntensityRangesPath string, data // Allocate everything needed (empty, if we find & load stuff, great, but we still need the data struct for the last step) beamLookup := dataConvertModels.BeamLocationByPMC{} + beamToolVersion := 0 hkData := dataConvertModels.HousekeepingData{} locSpectraLookup := dataConvertModels.DetectorSampleByPMC{} bulkMaxSpectraLookup := dataConvertModels.DetectorSampleByPMC{} @@ -214,10 +216,38 @@ func (p PIXLFM) Import(importPath string, pseudoIntensityRangesPath string, data for file, beamCsvMeta := range latestVersionFoundPaths { if beamCsvMeta.ProdType == "RXL" { // If files don't conform, don't read... - beamLookup, err = importerutils.ReadBeamLocationsFile(filepath.Join(pathToSubdir, file), true, 1, log) + beamFilePath := filepath.Join(pathToSubdir, file) + beamLookup, err = importerutils.ReadBeamLocationsFile(beamFilePath, true, 1, log) if err != nil { return nil, "", err } else { + // Import worked, find out what version of the beam geometry tool generated this by looking in the LBL file + lblPath := beamFilePath[0:len(beamFilePath)-3] + "LBL" + lblFileBytes, err := os.ReadFile(lblPath) + if err != nil { + //return nil, "", fmt.Errorf("Failed to read LBL file: %v. Beam geometry version could not be determined.", lblPath) + beamToolVersion = 2 // If we don't have an LBL file but it's a "recent" copy of the data, it has to be using beam geometry v2... + log.Errorf("WARNING: Beam location LBL file (%v) could not be read. Beam Version version is assumed to be: %v", filepath.Base(lblPath), beamToolVersion) + } else { + // Read each line and find the beam geometry version + lblLines := strings.Split(string(lblFileBytes), "\n") + searchStr := "Beam Geometry Tool Version " + + for _, line := range lblLines { + if pos := strings.Index(line, searchStr); pos > -1 { + verPos := pos + len(searchStr) + + log.Infof("Beam Geometry Tool version text found: %v", line[verPos:]) + + verChar := line[verPos : verPos+1] + r, _ := utf8.DecodeRuneInString(verChar) + beamToolVersion = int(r) - '0' + log.Infof("Saving as beam geometry tool version: %v", beamToolVersion) + break + } + } + } + // Found it, why keep looping? break } @@ -358,7 +388,7 @@ func (p PIXLFM) Import(importPath string, pseudoIntensityRangesPath string, data datasetIDExpected, p.overrideInstrument, p.overrideDetector, - 1, // TODO: Retrieve beam version and set it here! + uint32(beamToolVersion), log, ) diff --git a/api/dataimport/internal/output/output.go b/api/dataimport/internal/output/output.go index 07757757..6a066e9f 100644 --- a/api/dataimport/internal/output/output.go +++ b/api/dataimport/internal/output/output.go @@ -335,11 +335,7 @@ func (s *PIXLISEDataSaver) Save( // as we switched to storing them in DB (to allow import of other images with a corresponding set of beam locations) // Redundant, but this is how it evolved... for idx, imgItem := range exp.AlignedContextImages { - beamVer := data.BeamVersion - if beamVer < 1 { - beamVer = 1 - } - err := beamLocation.ImportBeamLocationToDB(path.Join(data.DatasetID, imgItem.Image), data.Instrument, data.DatasetID, beamVer, idx, &exp, db, jobLog) + err := beamLocation.ImportBeamLocationToDB(path.Join(data.DatasetID, imgItem.Image), data.Instrument, data.DatasetID, data.BeamVersion, idx, &exp, db, jobLog) if err != nil { return fmt.Errorf("Failed to import beam locations for image %v into DB. Error: %v", imgItem.Image, err) } @@ -368,7 +364,7 @@ func (s *PIXLISEDataSaver) Save( prevSavedScan = nil } - summaryData := makeSummaryFileContent(&exp, prevSavedScan, data.DatasetID, data.Instrument, data.Meta /*int(fi.Size()),*/, creationUnixTimeSec, data.CreatorUserId) + summaryData := makeSummaryFileContent(&exp, prevSavedScan, data.DatasetID, data.Instrument, data.Meta /*int(fi.Size()),*/, creationUnixTimeSec, data.CreatorUserId, jobLog) jobLog.Infof("Writing summary to DB for %v...", summaryData.Id) @@ -380,8 +376,8 @@ func (s *PIXLISEDataSaver) Save( if err != nil { jobLog.Errorf("Failed to write summary to DB: %v", err) return err - } else if result.UpsertedCount != 1 { - jobLog.Errorf("Expected summary write to create 1 upsert, got: %v", result.UpsertedCount) + } else if result.UpsertedCount != 1 && result.ModifiedCount != 1 { + jobLog.Errorf("Expected summary write to create 1 upsert, got: %v upsert, %v modified", result.UpsertedCount, result.ModifiedCount) } // Set ownership diff --git a/api/dataimport/internal/output/summary.go b/api/dataimport/internal/output/summary.go index 87dc041f..aca85676 100644 --- a/api/dataimport/internal/output/summary.go +++ b/api/dataimport/internal/output/summary.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/pixlise/core/v4/api/dataimport/internal/dataConvertModels" + "github.com/pixlise/core/v4/core/logger" protos "github.com/pixlise/core/v4/generated-protos" ) @@ -33,7 +34,8 @@ func makeSummaryFileContent( meta dataConvertModels.FileMetaData, //fileSize int, creationUnixTimeSec int64, - creatorUserId string) *protos.ScanItem { + creatorUserId string, + jobLog logger.ILogger) *protos.ScanItem { contextImgCount := len(exp.AlignedContextImages) + len(exp.UnalignedContextImages) + len(exp.MatchedAlignedContextImages) tiffContextImgCount := 0 @@ -117,16 +119,21 @@ func makeSummaryFileContent( // Add new time at the end s.PreviousImportTimesUnixSec = append(s.PreviousImportTimesUnixSec, prevSavedScan.TimestampUnixSec) + jobLog.Infof(" Added new previous time stamp entry: %v, total previous timestamps: %v", prevSavedScan.TimestampUnixSec, len(s.PreviousImportTimesUnixSec)) } // Save a time stamp for completion if isComplete { + jobLog.Infof(" Detected completed dataset...") + // If previous scan was also complete, DON'T update the time stamp, just preserve it if prevSavedScan != nil && prevSavedScan.CompleteTimeStampUnixSec > 0 { s.CompleteTimeStampUnixSec = prevSavedScan.CompleteTimeStampUnixSec + jobLog.Infof(" Preserved previous CompleteTimeStampUnixSec of %v", s.CompleteTimeStampUnixSec) } else { // We must've just completed now, so save the time s.CompleteTimeStampUnixSec = uint32(creationUnixTimeSec) + jobLog.Infof(" Setting CompleteTimeStampUnixSec=%v", creationUnixTimeSec) } } @@ -135,9 +142,16 @@ func makeSummaryFileContent( s.Tags = prevSavedScan.Tags s.Description = prevSavedScan.Description + descSnippet := s.Description + if len(descSnippet) > 30 { + descSnippet = descSnippet[0:30] + "..." + } + jobLog.Infof(" Preserved previous description=\"%v\"...", descSnippet) + if len(prevSavedScan.Description) > 0 { // User has entered a description so perserve the title too s.Title = prevSavedScan.Title + jobLog.Infof(" Preserved previous title=\"%v\"", s.Title) } } diff --git a/api/dataimport/test-data/ManualEM_Beamv2_OK/config-bucket/DatasetConfig/StandardPseudoIntensities.csv b/api/dataimport/test-data/ManualEM_Beamv2_OK/config-bucket/DatasetConfig/StandardPseudoIntensities.csv new file mode 100644 index 00000000..07682b34 --- /dev/null +++ b/api/dataimport/test-data/ManualEM_Beamv2_OK/config-bucket/DatasetConfig/StandardPseudoIntensities.csv @@ -0,0 +1,23 @@ +Name, StartChannel, EndChannel +Na, 122, 142 +Mg, 148, 170 +Al, 176, 200 +Si, 207, 233 +P, 241, 268 +S, 277, 306 +Cl, 315, 346 +K, 400, 435 +Ca, 446, 483 +Ti, 547, 588 +Ce, 588, 630 +Cr, 658, 703 +Mn, 718, 765 +Fe, 780, 829 +Ni, 913, 966 +Ge, 1211, 1271 +As, 1293, 1355 +Zn, 1057, 1113 +Sr, 1742, 1814 +Y, 1840, 1914 +Zr, 1938, 2014 +Ba, 542, 582 \ No newline at end of file diff --git a/api/dataimport/test-data/ManualEM_Beamv2_OK/dataset-bucket/.gitignore b/api/dataimport/test-data/ManualEM_Beamv2_OK/dataset-bucket/.gitignore new file mode 100644 index 00000000..01a386c9 --- /dev/null +++ b/api/dataimport/test-data/ManualEM_Beamv2_OK/dataset-bucket/.gitignore @@ -0,0 +1,2 @@ +Scans/ +Images/ \ No newline at end of file diff --git a/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/creator.json b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/creator.json new file mode 100644 index 00000000..b1af02ac --- /dev/null +++ b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/creator.json @@ -0,0 +1,5 @@ +{ + "name": "peternemere", + "user_id": "peter123", + "email": "fake@mail.com" +} \ No newline at end of file diff --git a/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/data.zip b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/data.zip new file mode 100644 index 00000000..d29315f9 Binary files /dev/null and b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/data.zip differ diff --git a/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/detector.json b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/detector.json new file mode 100644 index 00000000..898e6b75 --- /dev/null +++ b/api/dataimport/test-data/ManualEM_Beamv2_OK/manual-bucket/UploadedDatasets/048300551/detector.json @@ -0,0 +1,3 @@ +{ + "detector": "pixl-em" +} \ No newline at end of file diff --git a/api/ws/handlers/image-beam-location.go b/api/ws/handlers/image-beam-location.go index 7b78ad55..8cca6994 100644 --- a/api/ws/handlers/image-beam-location.go +++ b/api/ws/handlers/image-beam-location.go @@ -21,7 +21,10 @@ func HandleImageBeamLocationsReq(req *protos.ImageBeamLocationsReq, hctx wsHelpe // If we have generateForScanId set, we don't want to have an image name! if len(req.GenerateForScanId) > 0 { if len(req.ImageName) > 0 { - return nil, errorwithstatus.MakeBadRequestError(errors.New("Expected empty image name for request with GenerateForScanId set")) + return nil, errorwithstatus.MakeBadRequestError(errors.New("Expected empty imageName for request with GenerateForScanId set")) + } + if len(req.ScanBeamVersions) > 0 { + return nil, errorwithstatus.MakeBadRequestError(errors.New("Expected empty scanBeamVersions for request with GenerateForScanId set")) } // Check user has access to this scan @@ -68,17 +71,70 @@ func HandleImageBeamLocationsReq(req *protos.ImageBeamLocationsReq, hctx wsHelpe return nil, result.Err() } - err := result.Decode(&locs) + var dbLocs *protos.ImageLocations + err := result.Decode(&dbLocs) if err != nil { return nil, err } - if len(locs.LocationPerScan) <= 0 { + if len(dbLocs.LocationPerScan) <= 0 { return nil, fmt.Errorf("No beams defined for image: %v", req.ImageName) } - for _, scanLocs := range locs.LocationPerScan { - _, err := wsHelpers.CheckObjectAccess(false, scanLocs.ScanId, protos.ObjectType_OT_SCAN, hctx) + // Build list of unique scans so we don't run the object access check + dbScanIds := map[string]bool{} + for _, scanLocs := range dbLocs.LocationPerScan { + dbScanIds[scanLocs.ScanId] = true + } + scanBeamVersionsToReturn := req.ScanBeamVersions + if scanBeamVersionsToReturn == nil { + scanBeamVersionsToReturn = map[string]uint32{} + } + + // If they didn't specify versions to return, return the latest version for each scan represented + if len(scanBeamVersionsToReturn) <= 0 { + for _, scanLocs := range dbLocs.LocationPerScan { + // Add to map if it doesn't exist yet + if ver, ok := scanBeamVersionsToReturn[scanLocs.ScanId]; !ok { + scanBeamVersionsToReturn[scanLocs.ScanId] = scanLocs.BeamVersion + } else { + // Check if this beam version is larger + if scanLocs.BeamVersion > ver { + scanBeamVersionsToReturn[scanLocs.ScanId] = scanLocs.BeamVersion + } + } + } + } + + // Run through what we're planning to return and make sure user has access while building the result list + locs = &protos.ImageLocations{ + ImageName: dbLocs.ImageName, + LocationPerScan: []*protos.ImageLocationsForScan{}, + } + + // Return the specified scan/beam versions + for scan, ver := range scanBeamVersionsToReturn { + if !dbScanIds[scan] { + return nil, fmt.Errorf("No beams defined for image: %v and scan: %v", req.ImageName, scan) + } + + // This is a valid scan choice, now make sure the version requested exists + verFound := false + for _, scanLocs := range dbLocs.LocationPerScan { + if scanLocs.ScanId == scan && scanLocs.BeamVersion == ver { + verFound = true + locs.LocationPerScan = append(locs.LocationPerScan, scanLocs) + break + } + } + + if !verFound { + return nil, fmt.Errorf("No beams defined for image: %v and scan: %v with version: %v", req.ImageName, scan, ver) + } + } + + for scanId, _ := range scanBeamVersionsToReturn { + _, err := wsHelpers.CheckObjectAccess(false, scanId, protos.ObjectType_OT_SCAN, hctx) if err != nil { return nil, err } @@ -141,3 +197,46 @@ func generateIJs(imageName string, scanId string, instrument protos.ScanInstrume return &locs, nil } + +func HandleImageBeamLocationVersionsReq(req *protos.ImageBeamLocationVersionsReq, hctx wsHelpers.HandlerContext) (*protos.ImageBeamLocationVersionsResp, error) { + ctx := context.TODO() + + if err := wsHelpers.CheckStringField(&req.ImageName, "ImageName", 1, 255); err != nil { + return nil, err + } + + coll := hctx.Svcs.MongoDB.Collection(dbCollections.ImageBeamLocationsName) + vers := map[string]*protos.ImageBeamLocationVersionsResp_AvailableVersions{} + + // Read the image and check that the user has access to all scans associated with it + result := coll.FindOne(ctx, bson.M{"_id": req.ImageName}) + if result.Err() != nil { + if result.Err() == mongo.ErrNoDocuments { + // If there are no beam locations, don't return an error, just return a message with no items in it + return &protos.ImageBeamLocationVersionsResp{ + BeamVersionPerScan: vers, + }, nil + } + return nil, result.Err() + } + + var locs *protos.ImageLocations + err := result.Decode(&locs) + if err != nil { + return nil, err + } + + for _, locPerScan := range locs.LocationPerScan { + var availVersions *protos.ImageBeamLocationVersionsResp_AvailableVersions = vers[locPerScan.ScanId] + if availVersions == nil { + availVersions = &protos.ImageBeamLocationVersionsResp_AvailableVersions{Versions: []uint32{}} + vers[locPerScan.ScanId] = availVersions + } + + availVersions.Versions = append(availVersions.Versions, locPerScan.BeamVersion) + } + + return &protos.ImageBeamLocationVersionsResp{ + BeamVersionPerScan: vers, + }, nil +} diff --git a/api/ws/handlers/piquant.go b/api/ws/handlers/piquant.go index 9432a771..775624b9 100644 --- a/api/ws/handlers/piquant.go +++ b/api/ws/handlers/piquant.go @@ -103,7 +103,7 @@ func HandlePiquantWriteCurrentVersionReq(req *protos.PiquantWriteCurrentVersionR return nil, err } - if result.MatchedCount != 1 { + if result.MatchedCount != 1 && result.UpsertedCount != 1 { hctx.Svcs.Log.Errorf("PiquantWriteCurrentVersionReq UpdateByID result had unexpected counts %+v", result) } diff --git a/api/ws/handlers/scan.go b/api/ws/handlers/scan.go index cf5fe8d6..455be72e 100644 --- a/api/ws/handlers/scan.go +++ b/api/ws/handlers/scan.go @@ -106,6 +106,11 @@ func HandleScanListReq(req *protos.ScanListReq, hctx wsHelpers.HandlerContext) ( return nil, err } + for _, scan := range scans { + owner := idToOwner[scan.Id] + scan.Owner = wsHelpers.MakeOwnerSummary(owner, hctx.SessUser, hctx.Svcs.MongoDB, hctx.Svcs.TimeStamper) + } + return &protos.ScanListResp{ Scans: scans, }, nil @@ -254,7 +259,7 @@ func HandleScanMetaWriteReq(req *protos.ScanMetaWriteReq, hctx wsHelpers.Handler if err := wsHelpers.CheckStringField(&req.Title, "Title", 1, 100); err != nil { return nil, err } - if err := wsHelpers.CheckStringField(&req.Description, "Description", 1, 600); err != nil { + if err := wsHelpers.CheckStringField(&req.Description, "Description", 0, 30000); err != nil { return nil, err } if err := wsHelpers.CheckFieldLength(req.Tags, "Tags", 0, 10); err != nil { diff --git a/api/ws/wsHelpers/ownership.go b/api/ws/wsHelpers/ownership.go index 7ebe2a4f..7a8835fd 100644 --- a/api/ws/wsHelpers/ownership.go +++ b/api/ws/wsHelpers/ownership.go @@ -324,20 +324,28 @@ func GetUserIdsForGroup(groupIds []string, mongoDB *mongo.Database) ([]string, e userIds := []string{} for _, group := range groups { // Pull in the users - for _, userId := range group.Viewers.UserIds { - userIds = append(userIds, userId) + if group.Viewers != nil { + for _, userId := range group.Viewers.UserIds { + userIds = append(userIds, userId) + } } - for _, userId := range group.Members.UserIds { - userIds = append(userIds, userId) + if group.Members != nil { + for _, userId := range group.Members.UserIds { + userIds = append(userIds, userId) + } } // Recurse into groups groupIds := []string{} - for _, groupId := range group.Viewers.GroupIds { - groupIds = append(groupIds, groupId) + if group.Viewers != nil { + for _, groupId := range group.Viewers.GroupIds { + groupIds = append(groupIds, groupId) + } } - for _, groupId := range group.Members.GroupIds { - groupIds = append(groupIds, groupId) + if group.Members != nil { + for _, groupId := range group.Members.GroupIds { + groupIds = append(groupIds, groupId) + } } usersForGroup, err := GetUserIdsForGroup(groupIds, mongoDB) diff --git a/core/beamLocation/experimentFileToDB.go b/core/beamLocation/experimentFileToDB.go index 7c49fff9..df2f422f 100644 --- a/core/beamLocation/experimentFileToDB.go +++ b/core/beamLocation/experimentFileToDB.go @@ -2,6 +2,7 @@ package beamLocation import ( "context" + "fmt" "github.com/pixlise/core/v4/api/dbCollections" "github.com/pixlise/core/v4/core/logger" @@ -13,32 +14,48 @@ import ( func ImportBeamLocationToDB(imgName string, instrument protos.ScanInstrument, forScanId string, beamVersion uint32, ijIndex int, fromExprPB *protos.Experiment, db *mongo.Database, logger logger.ILogger) error { imagesColl := db.Collection(dbCollections.ImageBeamLocationsName) + ctx := context.TODO() + filter := bson.M{"_id": imgName} beams := &protos.ImageLocations{ ImageName: imgName, LocationPerScan: []*protos.ImageLocationsForScan{}, } - // Find the coordinates for this image - ijs := []*protos.Coordinate2D{} - - for _, loc := range fromExprPB.Locations { - var ij *protos.Coordinate2D + // Try to read an existing one. If there is one, we may only be importing one of the multiple versions of beam geometry into it, we can't just blindly overwrite! + beamReadResult := imagesColl.FindOne(ctx, filter, options.FindOne()) + if beamReadResult.Err() != nil { + if beamReadResult.Err() != mongo.ErrNoDocuments { + // Some notable error, stop here + return fmt.Errorf("Failed to read existing beam location for image: %v. Error: %v", imgName, beamReadResult.Err()) + } else { + // we're happy to use the blank one above + logger.Infof("Image %v had no prior beam locations saved. Writing imported beam version: %v", imgName, beamVersion) + } + } else { + // Use the one we read + if err := beamReadResult.Decode(beams); err != nil { + return fmt.Errorf("Failed to decode existing beam location for image: %v. Error: %v", imgName, err) + } - if loc.Beam != nil { - ij = &protos.Coordinate2D{} - if ijIndex == 0 { - ij.I = loc.Beam.ImageI - ij.J = loc.Beam.ImageJ + // We've read what's already there, ensure that the version we're writing doesn't exist! + locs := []*protos.ImageLocationsForScan{} + for _, beamItem := range beams.LocationPerScan { + if beamItem.ScanId != forScanId || beamItem.BeamVersion != beamVersion { + locs = append(locs, beamItem) + logger.Infof("Existing beam version %v for image %v/scan id %v will be preserved", beamVersion, imgName, beamItem.ScanId) } else { - ij.I = loc.Beam.ContextLocations[ijIndex-1].I - ij.J = loc.Beam.ContextLocations[ijIndex-1].J + logger.Infof("Detected existing beam version %v for image %v/scan id %v. This will be replaced by the newly imported one", beamVersion, beamItem.ScanId, imgName) } } - ijs = append(ijs, ij) + // Set this back in the beam we read, we're ready to append our new version + beams.LocationPerScan = locs } + // Read ij's from the experiment file + ijs := ReadIJs(ijIndex, fromExprPB) + beams.LocationPerScan = append(beams.LocationPerScan, &protos.ImageLocationsForScan{ ScanId: forScanId, Instrument: instrument, @@ -49,7 +66,7 @@ func ImportBeamLocationToDB(imgName string, instrument protos.ScanInstrument, fo opt := options.Replace().SetUpsert(true) logger.Infof("Writing beam location to DB for image: %v, and scan: %v, instrument: %v, beamVersion: %v", imgName, forScanId, instrument, beamVersion) - result, err := imagesColl.ReplaceOne(context.TODO(), bson.M{"_id": imgName}, beams, opt) + result, err := imagesColl.ReplaceOne(ctx, filter, beams, opt) if err != nil { return err } @@ -60,3 +77,27 @@ func ImportBeamLocationToDB(imgName string, instrument protos.ScanInstrument, fo return nil } + +func ReadIJs(ijIndex int, fromExprPB *protos.Experiment) []*protos.Coordinate2D { + // Find the coordinates for this image + ijs := []*protos.Coordinate2D{} + + for _, loc := range fromExprPB.Locations { + var ij *protos.Coordinate2D + + if loc.Beam != nil { + ij = &protos.Coordinate2D{} + if ijIndex == 0 { + ij.I = loc.Beam.ImageI + ij.J = loc.Beam.ImageJ + } else { + ij.I = loc.Beam.ContextLocations[ijIndex-1].I + ij.J = loc.Beam.ContextLocations[ijIndex-1].J + } + } + + ijs = append(ijs, ij) + } + + return ijs +} diff --git a/data-formats b/data-formats index e502c835..4328b723 160000 --- a/data-formats +++ b/data-formats @@ -1 +1 @@ -Subproject commit e502c8351c8fb7d8c0acb78186ee438fd5ca1e11 +Subproject commit 4328b723a936ffb97d8a17359fd13f413cb04f0f diff --git a/generated-protos/image-beam-location-msgs.pb.go b/generated-protos/image-beam-location-msgs.pb.go index 18c3d37d..5acd41c3 100644 --- a/generated-protos/image-beam-location-msgs.pb.go +++ b/generated-protos/image-beam-location-msgs.pb.go @@ -26,9 +26,9 @@ type ImageBeamLocationsReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ImageName string `protobuf:"bytes,1,opt,name=imageName,proto3" json:"imageName,omitempty"` - BeamVersion uint32 `protobuf:"varint,2,opt,name=beamVersion,proto3" json:"beamVersion,omitempty"` - GenerateForScanId string `protobuf:"bytes,3,opt,name=generateForScanId,proto3" json:"generateForScanId,omitempty"` + ImageName string `protobuf:"bytes,1,opt,name=imageName,proto3" json:"imageName,omitempty"` + ScanBeamVersions map[string]uint32 `protobuf:"bytes,4,rep,name=scanBeamVersions,proto3" json:"scanBeamVersions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + GenerateForScanId string `protobuf:"bytes,3,opt,name=generateForScanId,proto3" json:"generateForScanId,omitempty"` } func (x *ImageBeamLocationsReq) Reset() { @@ -70,11 +70,11 @@ func (x *ImageBeamLocationsReq) GetImageName() string { return "" } -func (x *ImageBeamLocationsReq) GetBeamVersion() uint32 { +func (x *ImageBeamLocationsReq) GetScanBeamVersions() map[string]uint32 { if x != nil { - return x.BeamVersion + return x.ScanBeamVersions } - return 0 + return nil } func (x *ImageBeamLocationsReq) GetGenerateForScanId() string { @@ -131,27 +131,200 @@ func (x *ImageBeamLocationsResp) GetLocations() *ImageLocations { return nil } +// requires(NONE) +type ImageBeamLocationVersionsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ImageName string `protobuf:"bytes,1,opt,name=imageName,proto3" json:"imageName,omitempty"` +} + +func (x *ImageBeamLocationVersionsReq) Reset() { + *x = ImageBeamLocationVersionsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_image_beam_location_msgs_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageBeamLocationVersionsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageBeamLocationVersionsReq) ProtoMessage() {} + +func (x *ImageBeamLocationVersionsReq) ProtoReflect() protoreflect.Message { + mi := &file_image_beam_location_msgs_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImageBeamLocationVersionsReq.ProtoReflect.Descriptor instead. +func (*ImageBeamLocationVersionsReq) Descriptor() ([]byte, []int) { + return file_image_beam_location_msgs_proto_rawDescGZIP(), []int{2} +} + +func (x *ImageBeamLocationVersionsReq) GetImageName() string { + if x != nil { + return x.ImageName + } + return "" +} + +type ImageBeamLocationVersionsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BeamVersionPerScan map[string]*ImageBeamLocationVersionsResp_AvailableVersions `protobuf:"bytes,1,rep,name=beamVersionPerScan,proto3" json:"beamVersionPerScan,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ImageBeamLocationVersionsResp) Reset() { + *x = ImageBeamLocationVersionsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_image_beam_location_msgs_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageBeamLocationVersionsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageBeamLocationVersionsResp) ProtoMessage() {} + +func (x *ImageBeamLocationVersionsResp) ProtoReflect() protoreflect.Message { + mi := &file_image_beam_location_msgs_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImageBeamLocationVersionsResp.ProtoReflect.Descriptor instead. +func (*ImageBeamLocationVersionsResp) Descriptor() ([]byte, []int) { + return file_image_beam_location_msgs_proto_rawDescGZIP(), []int{3} +} + +func (x *ImageBeamLocationVersionsResp) GetBeamVersionPerScan() map[string]*ImageBeamLocationVersionsResp_AvailableVersions { + if x != nil { + return x.BeamVersionPerScan + } + return nil +} + +type ImageBeamLocationVersionsResp_AvailableVersions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Versions []uint32 `protobuf:"varint,1,rep,packed,name=versions,proto3" json:"versions,omitempty"` +} + +func (x *ImageBeamLocationVersionsResp_AvailableVersions) Reset() { + *x = ImageBeamLocationVersionsResp_AvailableVersions{} + if protoimpl.UnsafeEnabled { + mi := &file_image_beam_location_msgs_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageBeamLocationVersionsResp_AvailableVersions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageBeamLocationVersionsResp_AvailableVersions) ProtoMessage() {} + +func (x *ImageBeamLocationVersionsResp_AvailableVersions) ProtoReflect() protoreflect.Message { + mi := &file_image_beam_location_msgs_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImageBeamLocationVersionsResp_AvailableVersions.ProtoReflect.Descriptor instead. +func (*ImageBeamLocationVersionsResp_AvailableVersions) Descriptor() ([]byte, []int) { + return file_image_beam_location_msgs_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *ImageBeamLocationVersionsResp_AvailableVersions) GetVersions() []uint32 { + if x != nil { + return x.Versions + } + return nil +} + var File_image_beam_location_msgs_proto protoreflect.FileDescriptor var file_image_beam_location_msgs_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x65, 0x61, 0x6d, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x65, 0x61, 0x6d, 0x2d, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x01, 0x0a, 0x15, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x02, 0x0a, 0x15, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x65, 0x61, 0x6d, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x46, 0x6f, 0x72, 0x53, 0x63, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x53, 0x63, 0x61, - 0x6e, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x16, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, - 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0a, 0x5a, 0x08, - 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x73, 0x63, 0x61, + 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, + 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x53, 0x63, 0x61, 0x6e, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x46, 0x6f, 0x72, 0x53, 0x63, 0x61, 0x6e, 0x49, 0x64, 0x1a, 0x43, 0x0a, 0x15, 0x53, + 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x47, 0x0a, 0x16, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x09, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x1d, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x12, 0x62, 0x65, 0x61, + 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6e, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, + 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x42, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x62, + 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x53, 0x63, 0x61, + 0x6e, 0x1a, 0x2f, 0x0a, 0x11, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x77, 0x0a, 0x17, 0x42, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, + 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -166,19 +339,27 @@ func file_image_beam_location_msgs_proto_rawDescGZIP() []byte { return file_image_beam_location_msgs_proto_rawDescData } -var file_image_beam_location_msgs_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_image_beam_location_msgs_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_image_beam_location_msgs_proto_goTypes = []interface{}{ - (*ImageBeamLocationsReq)(nil), // 0: ImageBeamLocationsReq - (*ImageBeamLocationsResp)(nil), // 1: ImageBeamLocationsResp - (*ImageLocations)(nil), // 2: ImageLocations + (*ImageBeamLocationsReq)(nil), // 0: ImageBeamLocationsReq + (*ImageBeamLocationsResp)(nil), // 1: ImageBeamLocationsResp + (*ImageBeamLocationVersionsReq)(nil), // 2: ImageBeamLocationVersionsReq + (*ImageBeamLocationVersionsResp)(nil), // 3: ImageBeamLocationVersionsResp + nil, // 4: ImageBeamLocationsReq.ScanBeamVersionsEntry + (*ImageBeamLocationVersionsResp_AvailableVersions)(nil), // 5: ImageBeamLocationVersionsResp.AvailableVersions + nil, // 6: ImageBeamLocationVersionsResp.BeamVersionPerScanEntry + (*ImageLocations)(nil), // 7: ImageLocations } var file_image_beam_location_msgs_proto_depIdxs = []int32{ - 2, // 0: ImageBeamLocationsResp.locations:type_name -> ImageLocations - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 4, // 0: ImageBeamLocationsReq.scanBeamVersions:type_name -> ImageBeamLocationsReq.ScanBeamVersionsEntry + 7, // 1: ImageBeamLocationsResp.locations:type_name -> ImageLocations + 6, // 2: ImageBeamLocationVersionsResp.beamVersionPerScan:type_name -> ImageBeamLocationVersionsResp.BeamVersionPerScanEntry + 5, // 3: ImageBeamLocationVersionsResp.BeamVersionPerScanEntry.value:type_name -> ImageBeamLocationVersionsResp.AvailableVersions + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_image_beam_location_msgs_proto_init() } @@ -212,6 +393,42 @@ func file_image_beam_location_msgs_proto_init() { return nil } } + file_image_beam_location_msgs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageBeamLocationVersionsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_image_beam_location_msgs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageBeamLocationVersionsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_image_beam_location_msgs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageBeamLocationVersionsResp_AvailableVersions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -219,7 +436,7 @@ func file_image_beam_location_msgs_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_image_beam_location_msgs_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/generated-protos/websocket.pb.go b/generated-protos/websocket.pb.go index ba331a7f..efe95c7f 100644 --- a/generated-protos/websocket.pb.go +++ b/generated-protos/websocket.pb.go @@ -164,6 +164,8 @@ type WSMessage struct { // *WSMessage_ExpressionWriteResp // *WSMessage_GetOwnershipReq // *WSMessage_GetOwnershipResp + // *WSMessage_ImageBeamLocationVersionsReq + // *WSMessage_ImageBeamLocationVersionsResp // *WSMessage_ImageBeamLocationsReq // *WSMessage_ImageBeamLocationsResp // *WSMessage_ImageDeleteReq @@ -858,6 +860,20 @@ func (x *WSMessage) GetGetOwnershipResp() *GetOwnershipResp { return nil } +func (x *WSMessage) GetImageBeamLocationVersionsReq() *ImageBeamLocationVersionsReq { + if x, ok := x.GetContents().(*WSMessage_ImageBeamLocationVersionsReq); ok { + return x.ImageBeamLocationVersionsReq + } + return nil +} + +func (x *WSMessage) GetImageBeamLocationVersionsResp() *ImageBeamLocationVersionsResp { + if x, ok := x.GetContents().(*WSMessage_ImageBeamLocationVersionsResp); ok { + return x.ImageBeamLocationVersionsResp + } + return nil +} + func (x *WSMessage) GetImageBeamLocationsReq() *ImageBeamLocationsReq { if x, ok := x.GetContents().(*WSMessage_ImageBeamLocationsReq); ok { return x.ImageBeamLocationsReq @@ -2579,6 +2595,14 @@ type WSMessage_GetOwnershipResp struct { GetOwnershipResp *GetOwnershipResp `protobuf:"bytes,173,opt,name=getOwnershipResp,proto3,oneof"` } +type WSMessage_ImageBeamLocationVersionsReq struct { + ImageBeamLocationVersionsReq *ImageBeamLocationVersionsReq `protobuf:"bytes,299,opt,name=imageBeamLocationVersionsReq,proto3,oneof"` +} + +type WSMessage_ImageBeamLocationVersionsResp struct { + ImageBeamLocationVersionsResp *ImageBeamLocationVersionsResp `protobuf:"bytes,300,opt,name=imageBeamLocationVersionsResp,proto3,oneof"` +} + type WSMessage_ImageBeamLocationsReq struct { ImageBeamLocationsReq *ImageBeamLocationsReq `protobuf:"bytes,190,opt,name=imageBeamLocationsReq,proto3,oneof"` } @@ -3543,6 +3567,10 @@ func (*WSMessage_GetOwnershipReq) isWSMessage_Contents() {} func (*WSMessage_GetOwnershipResp) isWSMessage_Contents() {} +func (*WSMessage_ImageBeamLocationVersionsReq) isWSMessage_Contents() {} + +func (*WSMessage_ImageBeamLocationVersionsResp) isWSMessage_Contents() {} + func (*WSMessage_ImageBeamLocationsReq) isWSMessage_Contents() {} func (*WSMessage_ImageBeamLocationsResp) isWSMessage_Contents() {} @@ -4043,7 +4071,7 @@ var file_websocket_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x2d, 0x64, 0x61, 0x74, - 0x61, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0xa6, 0x01, + 0x61, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0xa8, 0x01, 0x0a, 0x09, 0x57, 0x53, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -4369,1023 +4397,1036 @@ var file_websocket_proto_rawDesc = []byte{ 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, - 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x18, - 0xbe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, - 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x3a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x18, 0x86, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, - 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x87, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x13, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0x88, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x89, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x33, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, - 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0x96, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x12, 0x45, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x13, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, - 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x13, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, - 0x71, 0x18, 0x8a, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x53, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, + 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, 0x1c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x18, 0xab, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x67, 0x0a, 0x1d, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xac, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, + 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, + 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x18, 0xbe, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, + 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x3a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x18, 0x86, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x87, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x13, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0x88, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x89, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x33, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, + 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0x96, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x70, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x70, 0x64, 0x12, 0x45, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x13, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, + 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, + 0x18, 0x8a, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, + 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, + 0x12, 0x5e, 0x0a, 0x1a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, 0x8b, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, - 0x71, 0x12, 0x5e, 0x0a, 0x1a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x8b, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, - 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x71, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x18, 0x91, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, - 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x18, 0x92, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x39, 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x42, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x18, 0x91, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, - 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x58, 0x0a, 0x18, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x18, 0x93, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, - 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x48, - 0x00, 0x52, 0x18, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, - 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x12, 0x2e, 0x0a, 0x0a, 0x6a, - 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x0a, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0b, 0x6a, - 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa9, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, - 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0xaa, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x48, 0x00, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x12, 0x39, - 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x47, 0x65, - 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, - 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x44, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4c, 0x6f, - 0x67, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x52, - 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4c, 0x6f, - 0x67, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x6f, 0x67, - 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x53, - 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4c, - 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x18, 0x9b, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, - 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x6d, - 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x6d, 0x65, - 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9c, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, - 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x18, 0xc8, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc9, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0x9e, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, - 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x6e, 0x6f, 0x74, 0x69, + 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, + 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x92, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, + 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x58, 0x0a, 0x18, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, + 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x18, 0x93, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, + 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x48, 0x00, + 0x52, 0x18, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x72, 0x73, 0x56, 0x69, 0x65, 0x77, + 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x12, 0x2e, 0x0a, 0x0a, 0x6a, 0x6f, + 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, + 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0b, 0x6a, 0x6f, + 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa9, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, + 0x0a, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0xaa, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x48, + 0x00, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x12, 0x39, 0x0a, + 0x0e, 0x6c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x18, + 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x47, 0x65, 0x74, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x47, + 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x44, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4c, 0x6f, 0x67, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x52, 0x65, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x61, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4c, 0x6f, 0x67, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x52, + 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x53, 0x65, + 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x47, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4c, 0x6f, + 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x0f, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x37, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x18, 0x9b, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, + 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, + 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, + 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9c, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x4d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x18, 0xc8, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc9, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0x9e, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, + 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x9f, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x9f, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3d, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x40, - 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3d, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x55, 0x70, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0f, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x12, - 0x49, 0x0a, 0x13, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xaf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x14, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x14, 0x70, 0x69, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x18, 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x14, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x4e, 0x0a, 0x15, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, + 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, + 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3d, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x70, 0x64, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x12, 0x49, + 0x0a, 0x13, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x18, 0xaf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x14, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x64, 0x69, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x14, 0x70, 0x69, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, + 0x49, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x18, 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x48, 0x00, 0x52, 0x17, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x18, 0x70, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x4e, 0x0a, 0x15, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x70, + 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, + 0x4b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x17, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x18, 0x70, 0x69, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x70, 0x69, 0x71, 0x75, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x70, 0x69, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x1c, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x69, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x69, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x66, 0x0a, 0x1d, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x1c, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x69, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x69, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x66, 0x0a, 0x1d, 0x70, 0x69, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x1d, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x1d, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x57, 0x0a, 0x18, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x4f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x18, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x5a, 0x0a, 0x19, 0x70, 0x69, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x70, 0x69, 0x71, + 0x12, 0x57, 0x0a, 0x18, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x4f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x18, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x5a, 0x0a, 0x19, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x15, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, - 0x51, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x15, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x51, 0x0a, 0x16, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x16, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x1d, 0x70, 0x69, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x50, + 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x70, 0x69, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x15, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x51, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, + 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x51, 0x0a, 0x16, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x16, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x1d, 0x70, 0x69, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x1d, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x48, 0x00, 0x52, 0x1d, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x69, 0x0a, 0x1e, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x69, 0x0a, 0x1e, 0x70, 0x69, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x50, 0x69, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1e, 0x70, 0x69, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x12, + 0x73, 0x70, 0x18, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x50, 0x69, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1e, 0x70, 0x69, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x12, 0x70, + 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x71, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x50, 0x73, 0x65, 0x75, 0x64, 0x6f, + 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x18, 0x55, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x50, 0x73, 0x65, 0x75, 0x64, - 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x12, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, - 0x52, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x13, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x50, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, - 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, - 0x1c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x71, 0x18, 0xf2, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, - 0x52, 0x65, 0x71, 0x12, 0x67, 0x0a, 0x1d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x18, 0xf3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x50, 0x75, + 0x65, 0x71, 0x12, 0x48, 0x0a, 0x13, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x50, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, + 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, 0x1c, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x71, 0x18, 0xf2, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, + 0x65, 0x71, 0x12, 0x67, 0x0a, 0x1d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xf3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, + 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, - 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0xca, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x52, 0x0a, 0x16, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xcc, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x6f, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x18, 0xca, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xcb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x42, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x52, 0x0a, 0x16, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, + 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x17, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x51, 0x75, 0x61, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xce, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x8e, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x8f, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, - 0x64, 0x18, 0x90, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x12, 0x3a, 0x0a, 0x0e, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xd2, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4f, 0x0a, 0x15, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x12, 0x52, 0x0a, 0x16, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd9, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x18, 0xdb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x18, 0xdd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x70, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x18, 0xee, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, - 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x73, 0x0a, 0x21, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x21, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, 0x1c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xec, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x18, 0xcf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x71, 0x18, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x40, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x8e, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x8f, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, + 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, + 0x18, 0x90, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xd2, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, + 0x0a, 0x15, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, + 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x52, 0x0a, 0x16, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd7, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x18, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xd9, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x0d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x18, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, + 0x71, 0x12, 0x40, 0x0a, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x18, 0xdb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0xdc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x0e, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, + 0x3d, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x18, 0xdd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x70, + 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x18, 0xee, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x67, 0x0a, 0x1d, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xed, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, + 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x73, 0x0a, 0x21, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, + 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x21, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, 0x1c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, + 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xec, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, + 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1c, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, + 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x67, 0x0a, 0x1d, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, + 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xed, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x19, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, - 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x5d, 0x0a, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x58, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x19, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x7f, 0x0a, 0x25, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf6, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x71, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x5d, 0x0a, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x58, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x7f, 0x0a, 0x25, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x25, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x82, 0x01, 0x0a, 0x26, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf7, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x26, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x85, 0x01, 0x0a, 0x27, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x25, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x18, 0xf4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x27, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x88, - 0x01, 0x0a, 0x28, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf5, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x82, 0x01, 0x0a, 0x26, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x28, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x16, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x54, 0x0a, 0x17, + 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf7, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x26, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x85, 0x01, 0x0a, 0x27, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x18, 0xf4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x27, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x88, 0x01, + 0x0a, 0x28, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf5, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x28, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x16, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x59, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x17, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x18, 0x72, 0x65, 0x67, 0x69, + 0x71, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x54, 0x0a, 0x17, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x54, 0x0a, 0x17, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x59, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, - 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x57, 0x0a, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x5d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, - 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5a, 0x0a, 0x19, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x57, 0x0a, 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x5d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x18, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, + 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5a, 0x0a, 0x19, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x52, 0x75, 0x6e, - 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x75, 0x6e, - 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x41, - 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x18, 0x97, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, - 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x73, 0x63, 0x61, - 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x98, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x73, 0x63, 0x61, - 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, - 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x99, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, - 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x52, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9a, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, - 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x18, 0xc0, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x73, 0x63, 0x61, - 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc1, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x61, - 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x18, 0x94, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, - 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, - 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x73, - 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x95, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x63, 0x61, 0x6e, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x18, - 0xc2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x14, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc3, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x15, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0xc4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, - 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, - 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc5, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x18, 0xa4, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x53, 0x63, 0x61, - 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x18, 0xa5, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, 0x63, - 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x61, - 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x73, - 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x63, - 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0x65, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, - 0x70, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, - 0x64, 0x12, 0x5a, 0x0a, 0x19, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x18, 0x68, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x48, 0x00, 0x52, 0x19, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x5d, 0x0a, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x52, 0x75, 0x6e, 0x54, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x60, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x75, 0x6e, 0x54, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x54, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, + 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x18, 0x97, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x73, 0x63, 0x61, 0x6e, + 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x98, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x73, 0x63, 0x61, 0x6e, + 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, + 0x15, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x99, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, + 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x52, + 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9a, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, + 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x18, 0xc0, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x73, 0x63, 0x61, 0x6e, + 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x4f, 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc1, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x61, 0x6e, + 0x42, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x18, 0x94, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, + 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x73, 0x63, + 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x95, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x18, 0xc2, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, + 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc3, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, + 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0xc4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, + 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x73, + 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x73, + 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x18, 0xc5, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x18, 0xa4, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xa5, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, 0x63, 0x61, + 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, + 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, + 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x63, 0x61, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, 0x18, 0x65, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x12, 0x5a, 0x0a, 0x19, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x18, 0x68, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x19, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x5d, 0x0a, 0x1a, + 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x41, 0x6e, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x41, - 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x69, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x1a, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x10, - 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, - 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x73, 0x63, 0x61, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x42, 0x0a, - 0x11, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, + 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x10, 0x73, + 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, + 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x73, 0x63, 0x61, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x42, 0x0a, 0x11, 0x73, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x73, 0x63, 0x61, 0x6e, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x18, 0xa7, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x63, - 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x18, 0x6c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, - 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, - 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x55, 0x70, 0x64, 0x18, 0x8d, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, - 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x12, - 0x36, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x55, 0x70, 0x64, 0x18, 0x8c, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, - 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, - 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x12, 0x64, 0x0a, 0x1c, 0x73, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x84, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x67, 0x0a, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x85, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x63, 0x72, 0x65, + 0x70, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x73, + 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x55, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, + 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, + 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x73, 0x63, 0x61, 0x6e, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xa7, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x63, 0x61, + 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x51, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x18, 0x6c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, + 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, + 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x63, + 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x55, 0x70, 0x64, 0x18, 0x8d, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x63, + 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x12, 0x36, + 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, + 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, + 0x70, 0x64, 0x18, 0x8c, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, + 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x84, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x67, 0x0a, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x18, 0x85, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x63, 0x72, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x73, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x73, 0x63, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x18, 0xf9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x73, 0x63, + 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x18, 0xfa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xfa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1b, 0x73, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xfc, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, - 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfd, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe2, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, - 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xfc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, + 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfd, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe2, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, + 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x18, 0xe3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xe3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, - 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe4, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, + 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, + 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe4, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xe5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, + 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xe5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x18, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, - 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x18, 0xe8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x18, 0xe8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x73, - 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x57, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x71, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x0b, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, 0x73, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x33, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x54, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x0d, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, - 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x76, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, - 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x74, - 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, - 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x61, - 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x0b, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, - 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x12, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x39, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x82, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x18, 0xe9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x65, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x12, 0x57, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x71, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, 0x73, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x33, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, + 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, + 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, + 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x76, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x61, + 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x74, + 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x61, 0x67, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, + 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x75, + 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x39, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x71, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, + 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x82, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, + 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9f, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, - 0xb4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, - 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xa3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xa4, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, - 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x18, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9f, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x75, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xb4, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, + 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, + 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, + 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xa3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, + 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, + 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, - 0xb7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, - 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, + 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, + 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb7, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, - 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xba, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xbb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0xea, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xeb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, - 0xa9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x34, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x18, - 0xbc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x0d, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, - 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x75, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x75, 0x73, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x18, - 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, + 0x70, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xba, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xbb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0xea, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xeb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa9, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, + 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x18, 0xbc, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, + 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x75, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x18, 0x8e, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, - 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x12, 0x70, 0x0a, 0x20, + 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x73, - 0x0a, 0x21, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x55, 0x73, 0x65, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x12, 0x70, 0x0a, 0x20, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, + 0x91, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x21, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x97, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x75, - 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x18, 0xde, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x40, 0x0a, 0x10, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x18, 0xfe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x10, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x80, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x49, 0x0a, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x81, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x7a, 0x65, - 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf0, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, - 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x7a, 0x65, 0x6e, - 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf1, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, - 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x8e, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, - 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x57, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x53, 0x5f, - 0x42, 0x41, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x14, 0x0a, - 0x10, 0x57, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x53, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x06, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x73, 0x0a, + 0x21, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x21, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x18, 0xde, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x40, 0x0a, 0x10, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x18, 0xfe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x10, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x43, 0x0a, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x48, 0x00, 0x52, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x80, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, + 0x0a, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x81, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x7a, 0x65, 0x6e, + 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf0, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, + 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x7a, 0x65, 0x6e, 0x6f, + 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf1, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, + 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x8e, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, + 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x57, + 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x53, 0x5f, 0x42, + 0x41, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, + 0x57, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x53, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x06, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5465,217 +5506,219 @@ var file_websocket_proto_goTypes = []interface{}{ (*ExpressionWriteResp)(nil), // 59: ExpressionWriteResp (*GetOwnershipReq)(nil), // 60: GetOwnershipReq (*GetOwnershipResp)(nil), // 61: GetOwnershipResp - (*ImageBeamLocationsReq)(nil), // 62: ImageBeamLocationsReq - (*ImageBeamLocationsResp)(nil), // 63: ImageBeamLocationsResp - (*ImageDeleteReq)(nil), // 64: ImageDeleteReq - (*ImageDeleteResp)(nil), // 65: ImageDeleteResp - (*ImageGetDefaultReq)(nil), // 66: ImageGetDefaultReq - (*ImageGetDefaultResp)(nil), // 67: ImageGetDefaultResp - (*ImageGetReq)(nil), // 68: ImageGetReq - (*ImageGetResp)(nil), // 69: ImageGetResp - (*ImageListReq)(nil), // 70: ImageListReq - (*ImageListResp)(nil), // 71: ImageListResp - (*ImageListUpd)(nil), // 72: ImageListUpd - (*ImageSetDefaultReq)(nil), // 73: ImageSetDefaultReq - (*ImageSetDefaultResp)(nil), // 74: ImageSetDefaultResp - (*ImageSetMatchTransformReq)(nil), // 75: ImageSetMatchTransformReq - (*ImageSetMatchTransformResp)(nil), // 76: ImageSetMatchTransformResp - (*ImageUploadReq)(nil), // 77: ImageUploadReq - (*ImageUploadResp)(nil), // 78: ImageUploadResp - (*ImportMarsViewerImageReq)(nil), // 79: ImportMarsViewerImageReq - (*ImportMarsViewerImageResp)(nil), // 80: ImportMarsViewerImageResp - (*ImportMarsViewerImageUpd)(nil), // 81: ImportMarsViewerImageUpd - (*JobListReq)(nil), // 82: JobListReq - (*JobListResp)(nil), // 83: JobListResp - (*JobListUpd)(nil), // 84: JobListUpd - (*LogGetLevelReq)(nil), // 85: LogGetLevelReq - (*LogGetLevelResp)(nil), // 86: LogGetLevelResp - (*LogReadReq)(nil), // 87: LogReadReq - (*LogReadResp)(nil), // 88: LogReadResp - (*LogSetLevelReq)(nil), // 89: LogSetLevelReq - (*LogSetLevelResp)(nil), // 90: LogSetLevelResp - (*MemoiseGetReq)(nil), // 91: MemoiseGetReq - (*MemoiseGetResp)(nil), // 92: MemoiseGetResp - (*MemoiseWriteReq)(nil), // 93: MemoiseWriteReq - (*MemoiseWriteResp)(nil), // 94: MemoiseWriteResp - (*MultiQuantCompareReq)(nil), // 95: MultiQuantCompareReq - (*MultiQuantCompareResp)(nil), // 96: MultiQuantCompareResp - (*NotificationDismissReq)(nil), // 97: NotificationDismissReq - (*NotificationDismissResp)(nil), // 98: NotificationDismissResp - (*NotificationReq)(nil), // 99: NotificationReq - (*NotificationResp)(nil), // 100: NotificationResp - (*NotificationUpd)(nil), // 101: NotificationUpd - (*ObjectEditAccessReq)(nil), // 102: ObjectEditAccessReq - (*ObjectEditAccessResp)(nil), // 103: ObjectEditAccessResp - (*PiquantConfigListReq)(nil), // 104: PiquantConfigListReq - (*PiquantConfigListResp)(nil), // 105: PiquantConfigListResp - (*PiquantConfigVersionReq)(nil), // 106: PiquantConfigVersionReq - (*PiquantConfigVersionResp)(nil), // 107: PiquantConfigVersionResp - (*PiquantConfigVersionsListReq)(nil), // 108: PiquantConfigVersionsListReq - (*PiquantConfigVersionsListResp)(nil), // 109: PiquantConfigVersionsListResp - (*PiquantCurrentVersionReq)(nil), // 110: PiquantCurrentVersionReq - (*PiquantCurrentVersionResp)(nil), // 111: PiquantCurrentVersionResp - (*PiquantVersionListReq)(nil), // 112: PiquantVersionListReq - (*PiquantVersionListResp)(nil), // 113: PiquantVersionListResp - (*PiquantWriteCurrentVersionReq)(nil), // 114: PiquantWriteCurrentVersionReq - (*PiquantWriteCurrentVersionResp)(nil), // 115: PiquantWriteCurrentVersionResp - (*PseudoIntensityReq)(nil), // 116: PseudoIntensityReq - (*PseudoIntensityResp)(nil), // 117: PseudoIntensityResp - (*PublishExpressionToZenodoReq)(nil), // 118: PublishExpressionToZenodoReq - (*PublishExpressionToZenodoResp)(nil), // 119: PublishExpressionToZenodoResp - (*QuantBlessReq)(nil), // 120: QuantBlessReq - (*QuantBlessResp)(nil), // 121: QuantBlessResp - (*QuantCombineListGetReq)(nil), // 122: QuantCombineListGetReq - (*QuantCombineListGetResp)(nil), // 123: QuantCombineListGetResp - (*QuantCombineListWriteReq)(nil), // 124: QuantCombineListWriteReq - (*QuantCombineListWriteResp)(nil), // 125: QuantCombineListWriteResp - (*QuantCombineReq)(nil), // 126: QuantCombineReq - (*QuantCombineResp)(nil), // 127: QuantCombineResp - (*QuantCreateReq)(nil), // 128: QuantCreateReq - (*QuantCreateResp)(nil), // 129: QuantCreateResp - (*QuantCreateUpd)(nil), // 130: QuantCreateUpd - (*QuantDeleteReq)(nil), // 131: QuantDeleteReq - (*QuantDeleteResp)(nil), // 132: QuantDeleteResp - (*QuantGetReq)(nil), // 133: QuantGetReq - (*QuantGetResp)(nil), // 134: QuantGetResp - (*QuantLastOutputGetReq)(nil), // 135: QuantLastOutputGetReq - (*QuantLastOutputGetResp)(nil), // 136: QuantLastOutputGetResp - (*QuantListReq)(nil), // 137: QuantListReq - (*QuantListResp)(nil), // 138: QuantListResp - (*QuantPublishReq)(nil), // 139: QuantPublishReq - (*QuantPublishResp)(nil), // 140: QuantPublishResp - (*QuantUploadReq)(nil), // 141: QuantUploadReq - (*QuantUploadResp)(nil), // 142: QuantUploadResp - (*RegionOfInterestBulkDuplicateReq)(nil), // 143: RegionOfInterestBulkDuplicateReq - (*RegionOfInterestBulkDuplicateResp)(nil), // 144: RegionOfInterestBulkDuplicateResp - (*RegionOfInterestBulkWriteReq)(nil), // 145: RegionOfInterestBulkWriteReq - (*RegionOfInterestBulkWriteResp)(nil), // 146: RegionOfInterestBulkWriteResp - (*RegionOfInterestDeleteReq)(nil), // 147: RegionOfInterestDeleteReq - (*RegionOfInterestDeleteResp)(nil), // 148: RegionOfInterestDeleteResp - (*RegionOfInterestDisplaySettingsGetReq)(nil), // 149: RegionOfInterestDisplaySettingsGetReq - (*RegionOfInterestDisplaySettingsGetResp)(nil), // 150: RegionOfInterestDisplaySettingsGetResp - (*RegionOfInterestDisplaySettingsWriteReq)(nil), // 151: RegionOfInterestDisplaySettingsWriteReq - (*RegionOfInterestDisplaySettingsWriteResp)(nil), // 152: RegionOfInterestDisplaySettingsWriteResp - (*RegionOfInterestGetReq)(nil), // 153: RegionOfInterestGetReq - (*RegionOfInterestGetResp)(nil), // 154: RegionOfInterestGetResp - (*RegionOfInterestListReq)(nil), // 155: RegionOfInterestListReq - (*RegionOfInterestListResp)(nil), // 156: RegionOfInterestListResp - (*RegionOfInterestWriteReq)(nil), // 157: RegionOfInterestWriteReq - (*RegionOfInterestWriteResp)(nil), // 158: RegionOfInterestWriteResp - (*RunTestReq)(nil), // 159: RunTestReq - (*RunTestResp)(nil), // 160: RunTestResp - (*ScanAutoShareReq)(nil), // 161: ScanAutoShareReq - (*ScanAutoShareResp)(nil), // 162: ScanAutoShareResp - (*ScanAutoShareWriteReq)(nil), // 163: ScanAutoShareWriteReq - (*ScanAutoShareWriteResp)(nil), // 164: ScanAutoShareWriteResp - (*ScanBeamLocationsReq)(nil), // 165: ScanBeamLocationsReq - (*ScanBeamLocationsResp)(nil), // 166: ScanBeamLocationsResp - (*ScanDeleteReq)(nil), // 167: ScanDeleteReq - (*ScanDeleteResp)(nil), // 168: ScanDeleteResp - (*ScanEntryMetadataReq)(nil), // 169: ScanEntryMetadataReq - (*ScanEntryMetadataResp)(nil), // 170: ScanEntryMetadataResp - (*ScanEntryReq)(nil), // 171: ScanEntryReq - (*ScanEntryResp)(nil), // 172: ScanEntryResp - (*ScanGetReq)(nil), // 173: ScanGetReq - (*ScanGetResp)(nil), // 174: ScanGetResp - (*ScanListReq)(nil), // 175: ScanListReq - (*ScanListResp)(nil), // 176: ScanListResp - (*ScanListUpd)(nil), // 177: ScanListUpd - (*ScanMetaLabelsAndTypesReq)(nil), // 178: ScanMetaLabelsAndTypesReq - (*ScanMetaLabelsAndTypesResp)(nil), // 179: ScanMetaLabelsAndTypesResp - (*ScanMetaWriteReq)(nil), // 180: ScanMetaWriteReq - (*ScanMetaWriteResp)(nil), // 181: ScanMetaWriteResp - (*ScanTriggerAutoQuantReq)(nil), // 182: ScanTriggerAutoQuantReq - (*ScanTriggerAutoQuantResp)(nil), // 183: ScanTriggerAutoQuantResp - (*ScanTriggerReImportReq)(nil), // 184: ScanTriggerReImportReq - (*ScanTriggerReImportResp)(nil), // 185: ScanTriggerReImportResp - (*ScanTriggerReImportUpd)(nil), // 186: ScanTriggerReImportUpd - (*ScanUploadReq)(nil), // 187: ScanUploadReq - (*ScanUploadResp)(nil), // 188: ScanUploadResp - (*ScanUploadUpd)(nil), // 189: ScanUploadUpd - (*ScreenConfigurationDeleteReq)(nil), // 190: ScreenConfigurationDeleteReq - (*ScreenConfigurationDeleteResp)(nil), // 191: ScreenConfigurationDeleteResp - (*ScreenConfigurationGetReq)(nil), // 192: ScreenConfigurationGetReq - (*ScreenConfigurationGetResp)(nil), // 193: ScreenConfigurationGetResp - (*ScreenConfigurationListReq)(nil), // 194: ScreenConfigurationListReq - (*ScreenConfigurationListResp)(nil), // 195: ScreenConfigurationListResp - (*ScreenConfigurationWriteReq)(nil), // 196: ScreenConfigurationWriteReq - (*ScreenConfigurationWriteResp)(nil), // 197: ScreenConfigurationWriteResp - (*SelectedImagePixelsReq)(nil), // 198: SelectedImagePixelsReq - (*SelectedImagePixelsResp)(nil), // 199: SelectedImagePixelsResp - (*SelectedImagePixelsWriteReq)(nil), // 200: SelectedImagePixelsWriteReq - (*SelectedImagePixelsWriteResp)(nil), // 201: SelectedImagePixelsWriteResp - (*SelectedScanEntriesReq)(nil), // 202: SelectedScanEntriesReq - (*SelectedScanEntriesResp)(nil), // 203: SelectedScanEntriesResp - (*SelectedScanEntriesWriteReq)(nil), // 204: SelectedScanEntriesWriteReq - (*SelectedScanEntriesWriteResp)(nil), // 205: SelectedScanEntriesWriteResp - (*SendUserNotificationReq)(nil), // 206: SendUserNotificationReq - (*SendUserNotificationResp)(nil), // 207: SendUserNotificationResp - (*SpectrumReq)(nil), // 208: SpectrumReq - (*SpectrumResp)(nil), // 209: SpectrumResp - (*TagCreateReq)(nil), // 210: TagCreateReq - (*TagCreateResp)(nil), // 211: TagCreateResp - (*TagDeleteReq)(nil), // 212: TagDeleteReq - (*TagDeleteResp)(nil), // 213: TagDeleteResp - (*TagListReq)(nil), // 214: TagListReq - (*TagListResp)(nil), // 215: TagListResp - (*UserAddRoleReq)(nil), // 216: UserAddRoleReq - (*UserAddRoleResp)(nil), // 217: UserAddRoleResp - (*UserDeleteRoleReq)(nil), // 218: UserDeleteRoleReq - (*UserDeleteRoleResp)(nil), // 219: UserDeleteRoleResp - (*UserDetailsReq)(nil), // 220: UserDetailsReq - (*UserDetailsResp)(nil), // 221: UserDetailsResp - (*UserDetailsWriteReq)(nil), // 222: UserDetailsWriteReq - (*UserDetailsWriteResp)(nil), // 223: UserDetailsWriteResp - (*UserGroupAddAdminReq)(nil), // 224: UserGroupAddAdminReq - (*UserGroupAddAdminResp)(nil), // 225: UserGroupAddAdminResp - (*UserGroupAddMemberReq)(nil), // 226: UserGroupAddMemberReq - (*UserGroupAddMemberResp)(nil), // 227: UserGroupAddMemberResp - (*UserGroupAddViewerReq)(nil), // 228: UserGroupAddViewerReq - (*UserGroupAddViewerResp)(nil), // 229: UserGroupAddViewerResp - (*UserGroupCreateReq)(nil), // 230: UserGroupCreateReq - (*UserGroupCreateResp)(nil), // 231: UserGroupCreateResp - (*UserGroupDeleteAdminReq)(nil), // 232: UserGroupDeleteAdminReq - (*UserGroupDeleteAdminResp)(nil), // 233: UserGroupDeleteAdminResp - (*UserGroupDeleteMemberReq)(nil), // 234: UserGroupDeleteMemberReq - (*UserGroupDeleteMemberResp)(nil), // 235: UserGroupDeleteMemberResp - (*UserGroupDeleteReq)(nil), // 236: UserGroupDeleteReq - (*UserGroupDeleteResp)(nil), // 237: UserGroupDeleteResp - (*UserGroupDeleteViewerReq)(nil), // 238: UserGroupDeleteViewerReq - (*UserGroupDeleteViewerResp)(nil), // 239: UserGroupDeleteViewerResp - (*UserGroupIgnoreJoinReq)(nil), // 240: UserGroupIgnoreJoinReq - (*UserGroupIgnoreJoinResp)(nil), // 241: UserGroupIgnoreJoinResp - (*UserGroupJoinListReq)(nil), // 242: UserGroupJoinListReq - (*UserGroupJoinListResp)(nil), // 243: UserGroupJoinListResp - (*UserGroupJoinReq)(nil), // 244: UserGroupJoinReq - (*UserGroupJoinResp)(nil), // 245: UserGroupJoinResp - (*UserGroupListJoinableReq)(nil), // 246: UserGroupListJoinableReq - (*UserGroupListJoinableResp)(nil), // 247: UserGroupListJoinableResp - (*UserGroupListReq)(nil), // 248: UserGroupListReq - (*UserGroupListResp)(nil), // 249: UserGroupListResp - (*UserGroupReq)(nil), // 250: UserGroupReq - (*UserGroupResp)(nil), // 251: UserGroupResp - (*UserGroupSetNameReq)(nil), // 252: UserGroupSetNameReq - (*UserGroupSetNameResp)(nil), // 253: UserGroupSetNameResp - (*UserListReq)(nil), // 254: UserListReq - (*UserListResp)(nil), // 255: UserListResp - (*UserNotificationSettingsReq)(nil), // 256: UserNotificationSettingsReq - (*UserNotificationSettingsResp)(nil), // 257: UserNotificationSettingsResp - (*UserNotificationSettingsUpd)(nil), // 258: UserNotificationSettingsUpd - (*UserNotificationSettingsWriteReq)(nil), // 259: UserNotificationSettingsWriteReq - (*UserNotificationSettingsWriteResp)(nil), // 260: UserNotificationSettingsWriteResp - (*UserRoleListReq)(nil), // 261: UserRoleListReq - (*UserRoleListResp)(nil), // 262: UserRoleListResp - (*UserRolesListReq)(nil), // 263: UserRolesListReq - (*UserRolesListResp)(nil), // 264: UserRolesListResp - (*UserSearchReq)(nil), // 265: UserSearchReq - (*UserSearchResp)(nil), // 266: UserSearchResp - (*WidgetDataGetReq)(nil), // 267: WidgetDataGetReq - (*WidgetDataGetResp)(nil), // 268: WidgetDataGetResp - (*WidgetDataWriteReq)(nil), // 269: WidgetDataWriteReq - (*WidgetDataWriteResp)(nil), // 270: WidgetDataWriteResp - (*ZenodoDOIGetReq)(nil), // 271: ZenodoDOIGetReq - (*ZenodoDOIGetResp)(nil), // 272: ZenodoDOIGetResp + (*ImageBeamLocationVersionsReq)(nil), // 62: ImageBeamLocationVersionsReq + (*ImageBeamLocationVersionsResp)(nil), // 63: ImageBeamLocationVersionsResp + (*ImageBeamLocationsReq)(nil), // 64: ImageBeamLocationsReq + (*ImageBeamLocationsResp)(nil), // 65: ImageBeamLocationsResp + (*ImageDeleteReq)(nil), // 66: ImageDeleteReq + (*ImageDeleteResp)(nil), // 67: ImageDeleteResp + (*ImageGetDefaultReq)(nil), // 68: ImageGetDefaultReq + (*ImageGetDefaultResp)(nil), // 69: ImageGetDefaultResp + (*ImageGetReq)(nil), // 70: ImageGetReq + (*ImageGetResp)(nil), // 71: ImageGetResp + (*ImageListReq)(nil), // 72: ImageListReq + (*ImageListResp)(nil), // 73: ImageListResp + (*ImageListUpd)(nil), // 74: ImageListUpd + (*ImageSetDefaultReq)(nil), // 75: ImageSetDefaultReq + (*ImageSetDefaultResp)(nil), // 76: ImageSetDefaultResp + (*ImageSetMatchTransformReq)(nil), // 77: ImageSetMatchTransformReq + (*ImageSetMatchTransformResp)(nil), // 78: ImageSetMatchTransformResp + (*ImageUploadReq)(nil), // 79: ImageUploadReq + (*ImageUploadResp)(nil), // 80: ImageUploadResp + (*ImportMarsViewerImageReq)(nil), // 81: ImportMarsViewerImageReq + (*ImportMarsViewerImageResp)(nil), // 82: ImportMarsViewerImageResp + (*ImportMarsViewerImageUpd)(nil), // 83: ImportMarsViewerImageUpd + (*JobListReq)(nil), // 84: JobListReq + (*JobListResp)(nil), // 85: JobListResp + (*JobListUpd)(nil), // 86: JobListUpd + (*LogGetLevelReq)(nil), // 87: LogGetLevelReq + (*LogGetLevelResp)(nil), // 88: LogGetLevelResp + (*LogReadReq)(nil), // 89: LogReadReq + (*LogReadResp)(nil), // 90: LogReadResp + (*LogSetLevelReq)(nil), // 91: LogSetLevelReq + (*LogSetLevelResp)(nil), // 92: LogSetLevelResp + (*MemoiseGetReq)(nil), // 93: MemoiseGetReq + (*MemoiseGetResp)(nil), // 94: MemoiseGetResp + (*MemoiseWriteReq)(nil), // 95: MemoiseWriteReq + (*MemoiseWriteResp)(nil), // 96: MemoiseWriteResp + (*MultiQuantCompareReq)(nil), // 97: MultiQuantCompareReq + (*MultiQuantCompareResp)(nil), // 98: MultiQuantCompareResp + (*NotificationDismissReq)(nil), // 99: NotificationDismissReq + (*NotificationDismissResp)(nil), // 100: NotificationDismissResp + (*NotificationReq)(nil), // 101: NotificationReq + (*NotificationResp)(nil), // 102: NotificationResp + (*NotificationUpd)(nil), // 103: NotificationUpd + (*ObjectEditAccessReq)(nil), // 104: ObjectEditAccessReq + (*ObjectEditAccessResp)(nil), // 105: ObjectEditAccessResp + (*PiquantConfigListReq)(nil), // 106: PiquantConfigListReq + (*PiquantConfigListResp)(nil), // 107: PiquantConfigListResp + (*PiquantConfigVersionReq)(nil), // 108: PiquantConfigVersionReq + (*PiquantConfigVersionResp)(nil), // 109: PiquantConfigVersionResp + (*PiquantConfigVersionsListReq)(nil), // 110: PiquantConfigVersionsListReq + (*PiquantConfigVersionsListResp)(nil), // 111: PiquantConfigVersionsListResp + (*PiquantCurrentVersionReq)(nil), // 112: PiquantCurrentVersionReq + (*PiquantCurrentVersionResp)(nil), // 113: PiquantCurrentVersionResp + (*PiquantVersionListReq)(nil), // 114: PiquantVersionListReq + (*PiquantVersionListResp)(nil), // 115: PiquantVersionListResp + (*PiquantWriteCurrentVersionReq)(nil), // 116: PiquantWriteCurrentVersionReq + (*PiquantWriteCurrentVersionResp)(nil), // 117: PiquantWriteCurrentVersionResp + (*PseudoIntensityReq)(nil), // 118: PseudoIntensityReq + (*PseudoIntensityResp)(nil), // 119: PseudoIntensityResp + (*PublishExpressionToZenodoReq)(nil), // 120: PublishExpressionToZenodoReq + (*PublishExpressionToZenodoResp)(nil), // 121: PublishExpressionToZenodoResp + (*QuantBlessReq)(nil), // 122: QuantBlessReq + (*QuantBlessResp)(nil), // 123: QuantBlessResp + (*QuantCombineListGetReq)(nil), // 124: QuantCombineListGetReq + (*QuantCombineListGetResp)(nil), // 125: QuantCombineListGetResp + (*QuantCombineListWriteReq)(nil), // 126: QuantCombineListWriteReq + (*QuantCombineListWriteResp)(nil), // 127: QuantCombineListWriteResp + (*QuantCombineReq)(nil), // 128: QuantCombineReq + (*QuantCombineResp)(nil), // 129: QuantCombineResp + (*QuantCreateReq)(nil), // 130: QuantCreateReq + (*QuantCreateResp)(nil), // 131: QuantCreateResp + (*QuantCreateUpd)(nil), // 132: QuantCreateUpd + (*QuantDeleteReq)(nil), // 133: QuantDeleteReq + (*QuantDeleteResp)(nil), // 134: QuantDeleteResp + (*QuantGetReq)(nil), // 135: QuantGetReq + (*QuantGetResp)(nil), // 136: QuantGetResp + (*QuantLastOutputGetReq)(nil), // 137: QuantLastOutputGetReq + (*QuantLastOutputGetResp)(nil), // 138: QuantLastOutputGetResp + (*QuantListReq)(nil), // 139: QuantListReq + (*QuantListResp)(nil), // 140: QuantListResp + (*QuantPublishReq)(nil), // 141: QuantPublishReq + (*QuantPublishResp)(nil), // 142: QuantPublishResp + (*QuantUploadReq)(nil), // 143: QuantUploadReq + (*QuantUploadResp)(nil), // 144: QuantUploadResp + (*RegionOfInterestBulkDuplicateReq)(nil), // 145: RegionOfInterestBulkDuplicateReq + (*RegionOfInterestBulkDuplicateResp)(nil), // 146: RegionOfInterestBulkDuplicateResp + (*RegionOfInterestBulkWriteReq)(nil), // 147: RegionOfInterestBulkWriteReq + (*RegionOfInterestBulkWriteResp)(nil), // 148: RegionOfInterestBulkWriteResp + (*RegionOfInterestDeleteReq)(nil), // 149: RegionOfInterestDeleteReq + (*RegionOfInterestDeleteResp)(nil), // 150: RegionOfInterestDeleteResp + (*RegionOfInterestDisplaySettingsGetReq)(nil), // 151: RegionOfInterestDisplaySettingsGetReq + (*RegionOfInterestDisplaySettingsGetResp)(nil), // 152: RegionOfInterestDisplaySettingsGetResp + (*RegionOfInterestDisplaySettingsWriteReq)(nil), // 153: RegionOfInterestDisplaySettingsWriteReq + (*RegionOfInterestDisplaySettingsWriteResp)(nil), // 154: RegionOfInterestDisplaySettingsWriteResp + (*RegionOfInterestGetReq)(nil), // 155: RegionOfInterestGetReq + (*RegionOfInterestGetResp)(nil), // 156: RegionOfInterestGetResp + (*RegionOfInterestListReq)(nil), // 157: RegionOfInterestListReq + (*RegionOfInterestListResp)(nil), // 158: RegionOfInterestListResp + (*RegionOfInterestWriteReq)(nil), // 159: RegionOfInterestWriteReq + (*RegionOfInterestWriteResp)(nil), // 160: RegionOfInterestWriteResp + (*RunTestReq)(nil), // 161: RunTestReq + (*RunTestResp)(nil), // 162: RunTestResp + (*ScanAutoShareReq)(nil), // 163: ScanAutoShareReq + (*ScanAutoShareResp)(nil), // 164: ScanAutoShareResp + (*ScanAutoShareWriteReq)(nil), // 165: ScanAutoShareWriteReq + (*ScanAutoShareWriteResp)(nil), // 166: ScanAutoShareWriteResp + (*ScanBeamLocationsReq)(nil), // 167: ScanBeamLocationsReq + (*ScanBeamLocationsResp)(nil), // 168: ScanBeamLocationsResp + (*ScanDeleteReq)(nil), // 169: ScanDeleteReq + (*ScanDeleteResp)(nil), // 170: ScanDeleteResp + (*ScanEntryMetadataReq)(nil), // 171: ScanEntryMetadataReq + (*ScanEntryMetadataResp)(nil), // 172: ScanEntryMetadataResp + (*ScanEntryReq)(nil), // 173: ScanEntryReq + (*ScanEntryResp)(nil), // 174: ScanEntryResp + (*ScanGetReq)(nil), // 175: ScanGetReq + (*ScanGetResp)(nil), // 176: ScanGetResp + (*ScanListReq)(nil), // 177: ScanListReq + (*ScanListResp)(nil), // 178: ScanListResp + (*ScanListUpd)(nil), // 179: ScanListUpd + (*ScanMetaLabelsAndTypesReq)(nil), // 180: ScanMetaLabelsAndTypesReq + (*ScanMetaLabelsAndTypesResp)(nil), // 181: ScanMetaLabelsAndTypesResp + (*ScanMetaWriteReq)(nil), // 182: ScanMetaWriteReq + (*ScanMetaWriteResp)(nil), // 183: ScanMetaWriteResp + (*ScanTriggerAutoQuantReq)(nil), // 184: ScanTriggerAutoQuantReq + (*ScanTriggerAutoQuantResp)(nil), // 185: ScanTriggerAutoQuantResp + (*ScanTriggerReImportReq)(nil), // 186: ScanTriggerReImportReq + (*ScanTriggerReImportResp)(nil), // 187: ScanTriggerReImportResp + (*ScanTriggerReImportUpd)(nil), // 188: ScanTriggerReImportUpd + (*ScanUploadReq)(nil), // 189: ScanUploadReq + (*ScanUploadResp)(nil), // 190: ScanUploadResp + (*ScanUploadUpd)(nil), // 191: ScanUploadUpd + (*ScreenConfigurationDeleteReq)(nil), // 192: ScreenConfigurationDeleteReq + (*ScreenConfigurationDeleteResp)(nil), // 193: ScreenConfigurationDeleteResp + (*ScreenConfigurationGetReq)(nil), // 194: ScreenConfigurationGetReq + (*ScreenConfigurationGetResp)(nil), // 195: ScreenConfigurationGetResp + (*ScreenConfigurationListReq)(nil), // 196: ScreenConfigurationListReq + (*ScreenConfigurationListResp)(nil), // 197: ScreenConfigurationListResp + (*ScreenConfigurationWriteReq)(nil), // 198: ScreenConfigurationWriteReq + (*ScreenConfigurationWriteResp)(nil), // 199: ScreenConfigurationWriteResp + (*SelectedImagePixelsReq)(nil), // 200: SelectedImagePixelsReq + (*SelectedImagePixelsResp)(nil), // 201: SelectedImagePixelsResp + (*SelectedImagePixelsWriteReq)(nil), // 202: SelectedImagePixelsWriteReq + (*SelectedImagePixelsWriteResp)(nil), // 203: SelectedImagePixelsWriteResp + (*SelectedScanEntriesReq)(nil), // 204: SelectedScanEntriesReq + (*SelectedScanEntriesResp)(nil), // 205: SelectedScanEntriesResp + (*SelectedScanEntriesWriteReq)(nil), // 206: SelectedScanEntriesWriteReq + (*SelectedScanEntriesWriteResp)(nil), // 207: SelectedScanEntriesWriteResp + (*SendUserNotificationReq)(nil), // 208: SendUserNotificationReq + (*SendUserNotificationResp)(nil), // 209: SendUserNotificationResp + (*SpectrumReq)(nil), // 210: SpectrumReq + (*SpectrumResp)(nil), // 211: SpectrumResp + (*TagCreateReq)(nil), // 212: TagCreateReq + (*TagCreateResp)(nil), // 213: TagCreateResp + (*TagDeleteReq)(nil), // 214: TagDeleteReq + (*TagDeleteResp)(nil), // 215: TagDeleteResp + (*TagListReq)(nil), // 216: TagListReq + (*TagListResp)(nil), // 217: TagListResp + (*UserAddRoleReq)(nil), // 218: UserAddRoleReq + (*UserAddRoleResp)(nil), // 219: UserAddRoleResp + (*UserDeleteRoleReq)(nil), // 220: UserDeleteRoleReq + (*UserDeleteRoleResp)(nil), // 221: UserDeleteRoleResp + (*UserDetailsReq)(nil), // 222: UserDetailsReq + (*UserDetailsResp)(nil), // 223: UserDetailsResp + (*UserDetailsWriteReq)(nil), // 224: UserDetailsWriteReq + (*UserDetailsWriteResp)(nil), // 225: UserDetailsWriteResp + (*UserGroupAddAdminReq)(nil), // 226: UserGroupAddAdminReq + (*UserGroupAddAdminResp)(nil), // 227: UserGroupAddAdminResp + (*UserGroupAddMemberReq)(nil), // 228: UserGroupAddMemberReq + (*UserGroupAddMemberResp)(nil), // 229: UserGroupAddMemberResp + (*UserGroupAddViewerReq)(nil), // 230: UserGroupAddViewerReq + (*UserGroupAddViewerResp)(nil), // 231: UserGroupAddViewerResp + (*UserGroupCreateReq)(nil), // 232: UserGroupCreateReq + (*UserGroupCreateResp)(nil), // 233: UserGroupCreateResp + (*UserGroupDeleteAdminReq)(nil), // 234: UserGroupDeleteAdminReq + (*UserGroupDeleteAdminResp)(nil), // 235: UserGroupDeleteAdminResp + (*UserGroupDeleteMemberReq)(nil), // 236: UserGroupDeleteMemberReq + (*UserGroupDeleteMemberResp)(nil), // 237: UserGroupDeleteMemberResp + (*UserGroupDeleteReq)(nil), // 238: UserGroupDeleteReq + (*UserGroupDeleteResp)(nil), // 239: UserGroupDeleteResp + (*UserGroupDeleteViewerReq)(nil), // 240: UserGroupDeleteViewerReq + (*UserGroupDeleteViewerResp)(nil), // 241: UserGroupDeleteViewerResp + (*UserGroupIgnoreJoinReq)(nil), // 242: UserGroupIgnoreJoinReq + (*UserGroupIgnoreJoinResp)(nil), // 243: UserGroupIgnoreJoinResp + (*UserGroupJoinListReq)(nil), // 244: UserGroupJoinListReq + (*UserGroupJoinListResp)(nil), // 245: UserGroupJoinListResp + (*UserGroupJoinReq)(nil), // 246: UserGroupJoinReq + (*UserGroupJoinResp)(nil), // 247: UserGroupJoinResp + (*UserGroupListJoinableReq)(nil), // 248: UserGroupListJoinableReq + (*UserGroupListJoinableResp)(nil), // 249: UserGroupListJoinableResp + (*UserGroupListReq)(nil), // 250: UserGroupListReq + (*UserGroupListResp)(nil), // 251: UserGroupListResp + (*UserGroupReq)(nil), // 252: UserGroupReq + (*UserGroupResp)(nil), // 253: UserGroupResp + (*UserGroupSetNameReq)(nil), // 254: UserGroupSetNameReq + (*UserGroupSetNameResp)(nil), // 255: UserGroupSetNameResp + (*UserListReq)(nil), // 256: UserListReq + (*UserListResp)(nil), // 257: UserListResp + (*UserNotificationSettingsReq)(nil), // 258: UserNotificationSettingsReq + (*UserNotificationSettingsResp)(nil), // 259: UserNotificationSettingsResp + (*UserNotificationSettingsUpd)(nil), // 260: UserNotificationSettingsUpd + (*UserNotificationSettingsWriteReq)(nil), // 261: UserNotificationSettingsWriteReq + (*UserNotificationSettingsWriteResp)(nil), // 262: UserNotificationSettingsWriteResp + (*UserRoleListReq)(nil), // 263: UserRoleListReq + (*UserRoleListResp)(nil), // 264: UserRoleListResp + (*UserRolesListReq)(nil), // 265: UserRolesListReq + (*UserRolesListResp)(nil), // 266: UserRolesListResp + (*UserSearchReq)(nil), // 267: UserSearchReq + (*UserSearchResp)(nil), // 268: UserSearchResp + (*WidgetDataGetReq)(nil), // 269: WidgetDataGetReq + (*WidgetDataGetResp)(nil), // 270: WidgetDataGetResp + (*WidgetDataWriteReq)(nil), // 271: WidgetDataWriteReq + (*WidgetDataWriteResp)(nil), // 272: WidgetDataWriteResp + (*ZenodoDOIGetReq)(nil), // 273: ZenodoDOIGetReq + (*ZenodoDOIGetResp)(nil), // 274: ZenodoDOIGetResp } var file_websocket_proto_depIdxs = []int32{ 0, // 0: WSMessage.status:type_name -> ResponseStatus @@ -5739,222 +5782,224 @@ var file_websocket_proto_depIdxs = []int32{ 59, // 58: WSMessage.expressionWriteResp:type_name -> ExpressionWriteResp 60, // 59: WSMessage.getOwnershipReq:type_name -> GetOwnershipReq 61, // 60: WSMessage.getOwnershipResp:type_name -> GetOwnershipResp - 62, // 61: WSMessage.imageBeamLocationsReq:type_name -> ImageBeamLocationsReq - 63, // 62: WSMessage.imageBeamLocationsResp:type_name -> ImageBeamLocationsResp - 64, // 63: WSMessage.imageDeleteReq:type_name -> ImageDeleteReq - 65, // 64: WSMessage.imageDeleteResp:type_name -> ImageDeleteResp - 66, // 65: WSMessage.imageGetDefaultReq:type_name -> ImageGetDefaultReq - 67, // 66: WSMessage.imageGetDefaultResp:type_name -> ImageGetDefaultResp - 68, // 67: WSMessage.imageGetReq:type_name -> ImageGetReq - 69, // 68: WSMessage.imageGetResp:type_name -> ImageGetResp - 70, // 69: WSMessage.imageListReq:type_name -> ImageListReq - 71, // 70: WSMessage.imageListResp:type_name -> ImageListResp - 72, // 71: WSMessage.imageListUpd:type_name -> ImageListUpd - 73, // 72: WSMessage.imageSetDefaultReq:type_name -> ImageSetDefaultReq - 74, // 73: WSMessage.imageSetDefaultResp:type_name -> ImageSetDefaultResp - 75, // 74: WSMessage.imageSetMatchTransformReq:type_name -> ImageSetMatchTransformReq - 76, // 75: WSMessage.imageSetMatchTransformResp:type_name -> ImageSetMatchTransformResp - 77, // 76: WSMessage.imageUploadReq:type_name -> ImageUploadReq - 78, // 77: WSMessage.imageUploadResp:type_name -> ImageUploadResp - 79, // 78: WSMessage.importMarsViewerImageReq:type_name -> ImportMarsViewerImageReq - 80, // 79: WSMessage.importMarsViewerImageResp:type_name -> ImportMarsViewerImageResp - 81, // 80: WSMessage.importMarsViewerImageUpd:type_name -> ImportMarsViewerImageUpd - 82, // 81: WSMessage.jobListReq:type_name -> JobListReq - 83, // 82: WSMessage.jobListResp:type_name -> JobListResp - 84, // 83: WSMessage.jobListUpd:type_name -> JobListUpd - 85, // 84: WSMessage.logGetLevelReq:type_name -> LogGetLevelReq - 86, // 85: WSMessage.logGetLevelResp:type_name -> LogGetLevelResp - 87, // 86: WSMessage.logReadReq:type_name -> LogReadReq - 88, // 87: WSMessage.logReadResp:type_name -> LogReadResp - 89, // 88: WSMessage.logSetLevelReq:type_name -> LogSetLevelReq - 90, // 89: WSMessage.logSetLevelResp:type_name -> LogSetLevelResp - 91, // 90: WSMessage.memoiseGetReq:type_name -> MemoiseGetReq - 92, // 91: WSMessage.memoiseGetResp:type_name -> MemoiseGetResp - 93, // 92: WSMessage.memoiseWriteReq:type_name -> MemoiseWriteReq - 94, // 93: WSMessage.memoiseWriteResp:type_name -> MemoiseWriteResp - 95, // 94: WSMessage.multiQuantCompareReq:type_name -> MultiQuantCompareReq - 96, // 95: WSMessage.multiQuantCompareResp:type_name -> MultiQuantCompareResp - 97, // 96: WSMessage.notificationDismissReq:type_name -> NotificationDismissReq - 98, // 97: WSMessage.notificationDismissResp:type_name -> NotificationDismissResp - 99, // 98: WSMessage.notificationReq:type_name -> NotificationReq - 100, // 99: WSMessage.notificationResp:type_name -> NotificationResp - 101, // 100: WSMessage.notificationUpd:type_name -> NotificationUpd - 102, // 101: WSMessage.objectEditAccessReq:type_name -> ObjectEditAccessReq - 103, // 102: WSMessage.objectEditAccessResp:type_name -> ObjectEditAccessResp - 104, // 103: WSMessage.piquantConfigListReq:type_name -> PiquantConfigListReq - 105, // 104: WSMessage.piquantConfigListResp:type_name -> PiquantConfigListResp - 106, // 105: WSMessage.piquantConfigVersionReq:type_name -> PiquantConfigVersionReq - 107, // 106: WSMessage.piquantConfigVersionResp:type_name -> PiquantConfigVersionResp - 108, // 107: WSMessage.piquantConfigVersionsListReq:type_name -> PiquantConfigVersionsListReq - 109, // 108: WSMessage.piquantConfigVersionsListResp:type_name -> PiquantConfigVersionsListResp - 110, // 109: WSMessage.piquantCurrentVersionReq:type_name -> PiquantCurrentVersionReq - 111, // 110: WSMessage.piquantCurrentVersionResp:type_name -> PiquantCurrentVersionResp - 112, // 111: WSMessage.piquantVersionListReq:type_name -> PiquantVersionListReq - 113, // 112: WSMessage.piquantVersionListResp:type_name -> PiquantVersionListResp - 114, // 113: WSMessage.piquantWriteCurrentVersionReq:type_name -> PiquantWriteCurrentVersionReq - 115, // 114: WSMessage.piquantWriteCurrentVersionResp:type_name -> PiquantWriteCurrentVersionResp - 116, // 115: WSMessage.pseudoIntensityReq:type_name -> PseudoIntensityReq - 117, // 116: WSMessage.pseudoIntensityResp:type_name -> PseudoIntensityResp - 118, // 117: WSMessage.publishExpressionToZenodoReq:type_name -> PublishExpressionToZenodoReq - 119, // 118: WSMessage.publishExpressionToZenodoResp:type_name -> PublishExpressionToZenodoResp - 120, // 119: WSMessage.quantBlessReq:type_name -> QuantBlessReq - 121, // 120: WSMessage.quantBlessResp:type_name -> QuantBlessResp - 122, // 121: WSMessage.quantCombineListGetReq:type_name -> QuantCombineListGetReq - 123, // 122: WSMessage.quantCombineListGetResp:type_name -> QuantCombineListGetResp - 124, // 123: WSMessage.quantCombineListWriteReq:type_name -> QuantCombineListWriteReq - 125, // 124: WSMessage.quantCombineListWriteResp:type_name -> QuantCombineListWriteResp - 126, // 125: WSMessage.quantCombineReq:type_name -> QuantCombineReq - 127, // 126: WSMessage.quantCombineResp:type_name -> QuantCombineResp - 128, // 127: WSMessage.quantCreateReq:type_name -> QuantCreateReq - 129, // 128: WSMessage.quantCreateResp:type_name -> QuantCreateResp - 130, // 129: WSMessage.quantCreateUpd:type_name -> QuantCreateUpd - 131, // 130: WSMessage.quantDeleteReq:type_name -> QuantDeleteReq - 132, // 131: WSMessage.quantDeleteResp:type_name -> QuantDeleteResp - 133, // 132: WSMessage.quantGetReq:type_name -> QuantGetReq - 134, // 133: WSMessage.quantGetResp:type_name -> QuantGetResp - 135, // 134: WSMessage.quantLastOutputGetReq:type_name -> QuantLastOutputGetReq - 136, // 135: WSMessage.quantLastOutputGetResp:type_name -> QuantLastOutputGetResp - 137, // 136: WSMessage.quantListReq:type_name -> QuantListReq - 138, // 137: WSMessage.quantListResp:type_name -> QuantListResp - 139, // 138: WSMessage.quantPublishReq:type_name -> QuantPublishReq - 140, // 139: WSMessage.quantPublishResp:type_name -> QuantPublishResp - 141, // 140: WSMessage.quantUploadReq:type_name -> QuantUploadReq - 142, // 141: WSMessage.quantUploadResp:type_name -> QuantUploadResp - 143, // 142: WSMessage.regionOfInterestBulkDuplicateReq:type_name -> RegionOfInterestBulkDuplicateReq - 144, // 143: WSMessage.regionOfInterestBulkDuplicateResp:type_name -> RegionOfInterestBulkDuplicateResp - 145, // 144: WSMessage.regionOfInterestBulkWriteReq:type_name -> RegionOfInterestBulkWriteReq - 146, // 145: WSMessage.regionOfInterestBulkWriteResp:type_name -> RegionOfInterestBulkWriteResp - 147, // 146: WSMessage.regionOfInterestDeleteReq:type_name -> RegionOfInterestDeleteReq - 148, // 147: WSMessage.regionOfInterestDeleteResp:type_name -> RegionOfInterestDeleteResp - 149, // 148: WSMessage.regionOfInterestDisplaySettingsGetReq:type_name -> RegionOfInterestDisplaySettingsGetReq - 150, // 149: WSMessage.regionOfInterestDisplaySettingsGetResp:type_name -> RegionOfInterestDisplaySettingsGetResp - 151, // 150: WSMessage.regionOfInterestDisplaySettingsWriteReq:type_name -> RegionOfInterestDisplaySettingsWriteReq - 152, // 151: WSMessage.regionOfInterestDisplaySettingsWriteResp:type_name -> RegionOfInterestDisplaySettingsWriteResp - 153, // 152: WSMessage.regionOfInterestGetReq:type_name -> RegionOfInterestGetReq - 154, // 153: WSMessage.regionOfInterestGetResp:type_name -> RegionOfInterestGetResp - 155, // 154: WSMessage.regionOfInterestListReq:type_name -> RegionOfInterestListReq - 156, // 155: WSMessage.regionOfInterestListResp:type_name -> RegionOfInterestListResp - 157, // 156: WSMessage.regionOfInterestWriteReq:type_name -> RegionOfInterestWriteReq - 158, // 157: WSMessage.regionOfInterestWriteResp:type_name -> RegionOfInterestWriteResp - 159, // 158: WSMessage.runTestReq:type_name -> RunTestReq - 160, // 159: WSMessage.runTestResp:type_name -> RunTestResp - 161, // 160: WSMessage.scanAutoShareReq:type_name -> ScanAutoShareReq - 162, // 161: WSMessage.scanAutoShareResp:type_name -> ScanAutoShareResp - 163, // 162: WSMessage.scanAutoShareWriteReq:type_name -> ScanAutoShareWriteReq - 164, // 163: WSMessage.scanAutoShareWriteResp:type_name -> ScanAutoShareWriteResp - 165, // 164: WSMessage.scanBeamLocationsReq:type_name -> ScanBeamLocationsReq - 166, // 165: WSMessage.scanBeamLocationsResp:type_name -> ScanBeamLocationsResp - 167, // 166: WSMessage.scanDeleteReq:type_name -> ScanDeleteReq - 168, // 167: WSMessage.scanDeleteResp:type_name -> ScanDeleteResp - 169, // 168: WSMessage.scanEntryMetadataReq:type_name -> ScanEntryMetadataReq - 170, // 169: WSMessage.scanEntryMetadataResp:type_name -> ScanEntryMetadataResp - 171, // 170: WSMessage.scanEntryReq:type_name -> ScanEntryReq - 172, // 171: WSMessage.scanEntryResp:type_name -> ScanEntryResp - 173, // 172: WSMessage.scanGetReq:type_name -> ScanGetReq - 174, // 173: WSMessage.scanGetResp:type_name -> ScanGetResp - 175, // 174: WSMessage.scanListReq:type_name -> ScanListReq - 176, // 175: WSMessage.scanListResp:type_name -> ScanListResp - 177, // 176: WSMessage.scanListUpd:type_name -> ScanListUpd - 178, // 177: WSMessage.scanMetaLabelsAndTypesReq:type_name -> ScanMetaLabelsAndTypesReq - 179, // 178: WSMessage.scanMetaLabelsAndTypesResp:type_name -> ScanMetaLabelsAndTypesResp - 180, // 179: WSMessage.scanMetaWriteReq:type_name -> ScanMetaWriteReq - 181, // 180: WSMessage.scanMetaWriteResp:type_name -> ScanMetaWriteResp - 182, // 181: WSMessage.scanTriggerAutoQuantReq:type_name -> ScanTriggerAutoQuantReq - 183, // 182: WSMessage.scanTriggerAutoQuantResp:type_name -> ScanTriggerAutoQuantResp - 184, // 183: WSMessage.scanTriggerReImportReq:type_name -> ScanTriggerReImportReq - 185, // 184: WSMessage.scanTriggerReImportResp:type_name -> ScanTriggerReImportResp - 186, // 185: WSMessage.scanTriggerReImportUpd:type_name -> ScanTriggerReImportUpd - 187, // 186: WSMessage.scanUploadReq:type_name -> ScanUploadReq - 188, // 187: WSMessage.scanUploadResp:type_name -> ScanUploadResp - 189, // 188: WSMessage.scanUploadUpd:type_name -> ScanUploadUpd - 190, // 189: WSMessage.screenConfigurationDeleteReq:type_name -> ScreenConfigurationDeleteReq - 191, // 190: WSMessage.screenConfigurationDeleteResp:type_name -> ScreenConfigurationDeleteResp - 192, // 191: WSMessage.screenConfigurationGetReq:type_name -> ScreenConfigurationGetReq - 193, // 192: WSMessage.screenConfigurationGetResp:type_name -> ScreenConfigurationGetResp - 194, // 193: WSMessage.screenConfigurationListReq:type_name -> ScreenConfigurationListReq - 195, // 194: WSMessage.screenConfigurationListResp:type_name -> ScreenConfigurationListResp - 196, // 195: WSMessage.screenConfigurationWriteReq:type_name -> ScreenConfigurationWriteReq - 197, // 196: WSMessage.screenConfigurationWriteResp:type_name -> ScreenConfigurationWriteResp - 198, // 197: WSMessage.selectedImagePixelsReq:type_name -> SelectedImagePixelsReq - 199, // 198: WSMessage.selectedImagePixelsResp:type_name -> SelectedImagePixelsResp - 200, // 199: WSMessage.selectedImagePixelsWriteReq:type_name -> SelectedImagePixelsWriteReq - 201, // 200: WSMessage.selectedImagePixelsWriteResp:type_name -> SelectedImagePixelsWriteResp - 202, // 201: WSMessage.selectedScanEntriesReq:type_name -> SelectedScanEntriesReq - 203, // 202: WSMessage.selectedScanEntriesResp:type_name -> SelectedScanEntriesResp - 204, // 203: WSMessage.selectedScanEntriesWriteReq:type_name -> SelectedScanEntriesWriteReq - 205, // 204: WSMessage.selectedScanEntriesWriteResp:type_name -> SelectedScanEntriesWriteResp - 206, // 205: WSMessage.sendUserNotificationReq:type_name -> SendUserNotificationReq - 207, // 206: WSMessage.sendUserNotificationResp:type_name -> SendUserNotificationResp - 208, // 207: WSMessage.spectrumReq:type_name -> SpectrumReq - 209, // 208: WSMessage.spectrumResp:type_name -> SpectrumResp - 210, // 209: WSMessage.tagCreateReq:type_name -> TagCreateReq - 211, // 210: WSMessage.tagCreateResp:type_name -> TagCreateResp - 212, // 211: WSMessage.tagDeleteReq:type_name -> TagDeleteReq - 213, // 212: WSMessage.tagDeleteResp:type_name -> TagDeleteResp - 214, // 213: WSMessage.tagListReq:type_name -> TagListReq - 215, // 214: WSMessage.tagListResp:type_name -> TagListResp - 216, // 215: WSMessage.userAddRoleReq:type_name -> UserAddRoleReq - 217, // 216: WSMessage.userAddRoleResp:type_name -> UserAddRoleResp - 218, // 217: WSMessage.userDeleteRoleReq:type_name -> UserDeleteRoleReq - 219, // 218: WSMessage.userDeleteRoleResp:type_name -> UserDeleteRoleResp - 220, // 219: WSMessage.userDetailsReq:type_name -> UserDetailsReq - 221, // 220: WSMessage.userDetailsResp:type_name -> UserDetailsResp - 222, // 221: WSMessage.userDetailsWriteReq:type_name -> UserDetailsWriteReq - 223, // 222: WSMessage.userDetailsWriteResp:type_name -> UserDetailsWriteResp - 224, // 223: WSMessage.userGroupAddAdminReq:type_name -> UserGroupAddAdminReq - 225, // 224: WSMessage.userGroupAddAdminResp:type_name -> UserGroupAddAdminResp - 226, // 225: WSMessage.userGroupAddMemberReq:type_name -> UserGroupAddMemberReq - 227, // 226: WSMessage.userGroupAddMemberResp:type_name -> UserGroupAddMemberResp - 228, // 227: WSMessage.userGroupAddViewerReq:type_name -> UserGroupAddViewerReq - 229, // 228: WSMessage.userGroupAddViewerResp:type_name -> UserGroupAddViewerResp - 230, // 229: WSMessage.userGroupCreateReq:type_name -> UserGroupCreateReq - 231, // 230: WSMessage.userGroupCreateResp:type_name -> UserGroupCreateResp - 232, // 231: WSMessage.userGroupDeleteAdminReq:type_name -> UserGroupDeleteAdminReq - 233, // 232: WSMessage.userGroupDeleteAdminResp:type_name -> UserGroupDeleteAdminResp - 234, // 233: WSMessage.userGroupDeleteMemberReq:type_name -> UserGroupDeleteMemberReq - 235, // 234: WSMessage.userGroupDeleteMemberResp:type_name -> UserGroupDeleteMemberResp - 236, // 235: WSMessage.userGroupDeleteReq:type_name -> UserGroupDeleteReq - 237, // 236: WSMessage.userGroupDeleteResp:type_name -> UserGroupDeleteResp - 238, // 237: WSMessage.userGroupDeleteViewerReq:type_name -> UserGroupDeleteViewerReq - 239, // 238: WSMessage.userGroupDeleteViewerResp:type_name -> UserGroupDeleteViewerResp - 240, // 239: WSMessage.userGroupIgnoreJoinReq:type_name -> UserGroupIgnoreJoinReq - 241, // 240: WSMessage.userGroupIgnoreJoinResp:type_name -> UserGroupIgnoreJoinResp - 242, // 241: WSMessage.userGroupJoinListReq:type_name -> UserGroupJoinListReq - 243, // 242: WSMessage.userGroupJoinListResp:type_name -> UserGroupJoinListResp - 244, // 243: WSMessage.userGroupJoinReq:type_name -> UserGroupJoinReq - 245, // 244: WSMessage.userGroupJoinResp:type_name -> UserGroupJoinResp - 246, // 245: WSMessage.userGroupListJoinableReq:type_name -> UserGroupListJoinableReq - 247, // 246: WSMessage.userGroupListJoinableResp:type_name -> UserGroupListJoinableResp - 248, // 247: WSMessage.userGroupListReq:type_name -> UserGroupListReq - 249, // 248: WSMessage.userGroupListResp:type_name -> UserGroupListResp - 250, // 249: WSMessage.userGroupReq:type_name -> UserGroupReq - 251, // 250: WSMessage.userGroupResp:type_name -> UserGroupResp - 252, // 251: WSMessage.userGroupSetNameReq:type_name -> UserGroupSetNameReq - 253, // 252: WSMessage.userGroupSetNameResp:type_name -> UserGroupSetNameResp - 254, // 253: WSMessage.userListReq:type_name -> UserListReq - 255, // 254: WSMessage.userListResp:type_name -> UserListResp - 256, // 255: WSMessage.userNotificationSettingsReq:type_name -> UserNotificationSettingsReq - 257, // 256: WSMessage.userNotificationSettingsResp:type_name -> UserNotificationSettingsResp - 258, // 257: WSMessage.userNotificationSettingsUpd:type_name -> UserNotificationSettingsUpd - 259, // 258: WSMessage.userNotificationSettingsWriteReq:type_name -> UserNotificationSettingsWriteReq - 260, // 259: WSMessage.userNotificationSettingsWriteResp:type_name -> UserNotificationSettingsWriteResp - 261, // 260: WSMessage.userRoleListReq:type_name -> UserRoleListReq - 262, // 261: WSMessage.userRoleListResp:type_name -> UserRoleListResp - 263, // 262: WSMessage.userRolesListReq:type_name -> UserRolesListReq - 264, // 263: WSMessage.userRolesListResp:type_name -> UserRolesListResp - 265, // 264: WSMessage.userSearchReq:type_name -> UserSearchReq - 266, // 265: WSMessage.userSearchResp:type_name -> UserSearchResp - 267, // 266: WSMessage.widgetDataGetReq:type_name -> WidgetDataGetReq - 268, // 267: WSMessage.widgetDataGetResp:type_name -> WidgetDataGetResp - 269, // 268: WSMessage.widgetDataWriteReq:type_name -> WidgetDataWriteReq - 270, // 269: WSMessage.widgetDataWriteResp:type_name -> WidgetDataWriteResp - 271, // 270: WSMessage.zenodoDOIGetReq:type_name -> ZenodoDOIGetReq - 272, // 271: WSMessage.zenodoDOIGetResp:type_name -> ZenodoDOIGetResp - 272, // [272:272] is the sub-list for method output_type - 272, // [272:272] is the sub-list for method input_type - 272, // [272:272] is the sub-list for extension type_name - 272, // [272:272] is the sub-list for extension extendee - 0, // [0:272] is the sub-list for field type_name + 62, // 61: WSMessage.imageBeamLocationVersionsReq:type_name -> ImageBeamLocationVersionsReq + 63, // 62: WSMessage.imageBeamLocationVersionsResp:type_name -> ImageBeamLocationVersionsResp + 64, // 63: WSMessage.imageBeamLocationsReq:type_name -> ImageBeamLocationsReq + 65, // 64: WSMessage.imageBeamLocationsResp:type_name -> ImageBeamLocationsResp + 66, // 65: WSMessage.imageDeleteReq:type_name -> ImageDeleteReq + 67, // 66: WSMessage.imageDeleteResp:type_name -> ImageDeleteResp + 68, // 67: WSMessage.imageGetDefaultReq:type_name -> ImageGetDefaultReq + 69, // 68: WSMessage.imageGetDefaultResp:type_name -> ImageGetDefaultResp + 70, // 69: WSMessage.imageGetReq:type_name -> ImageGetReq + 71, // 70: WSMessage.imageGetResp:type_name -> ImageGetResp + 72, // 71: WSMessage.imageListReq:type_name -> ImageListReq + 73, // 72: WSMessage.imageListResp:type_name -> ImageListResp + 74, // 73: WSMessage.imageListUpd:type_name -> ImageListUpd + 75, // 74: WSMessage.imageSetDefaultReq:type_name -> ImageSetDefaultReq + 76, // 75: WSMessage.imageSetDefaultResp:type_name -> ImageSetDefaultResp + 77, // 76: WSMessage.imageSetMatchTransformReq:type_name -> ImageSetMatchTransformReq + 78, // 77: WSMessage.imageSetMatchTransformResp:type_name -> ImageSetMatchTransformResp + 79, // 78: WSMessage.imageUploadReq:type_name -> ImageUploadReq + 80, // 79: WSMessage.imageUploadResp:type_name -> ImageUploadResp + 81, // 80: WSMessage.importMarsViewerImageReq:type_name -> ImportMarsViewerImageReq + 82, // 81: WSMessage.importMarsViewerImageResp:type_name -> ImportMarsViewerImageResp + 83, // 82: WSMessage.importMarsViewerImageUpd:type_name -> ImportMarsViewerImageUpd + 84, // 83: WSMessage.jobListReq:type_name -> JobListReq + 85, // 84: WSMessage.jobListResp:type_name -> JobListResp + 86, // 85: WSMessage.jobListUpd:type_name -> JobListUpd + 87, // 86: WSMessage.logGetLevelReq:type_name -> LogGetLevelReq + 88, // 87: WSMessage.logGetLevelResp:type_name -> LogGetLevelResp + 89, // 88: WSMessage.logReadReq:type_name -> LogReadReq + 90, // 89: WSMessage.logReadResp:type_name -> LogReadResp + 91, // 90: WSMessage.logSetLevelReq:type_name -> LogSetLevelReq + 92, // 91: WSMessage.logSetLevelResp:type_name -> LogSetLevelResp + 93, // 92: WSMessage.memoiseGetReq:type_name -> MemoiseGetReq + 94, // 93: WSMessage.memoiseGetResp:type_name -> MemoiseGetResp + 95, // 94: WSMessage.memoiseWriteReq:type_name -> MemoiseWriteReq + 96, // 95: WSMessage.memoiseWriteResp:type_name -> MemoiseWriteResp + 97, // 96: WSMessage.multiQuantCompareReq:type_name -> MultiQuantCompareReq + 98, // 97: WSMessage.multiQuantCompareResp:type_name -> MultiQuantCompareResp + 99, // 98: WSMessage.notificationDismissReq:type_name -> NotificationDismissReq + 100, // 99: WSMessage.notificationDismissResp:type_name -> NotificationDismissResp + 101, // 100: WSMessage.notificationReq:type_name -> NotificationReq + 102, // 101: WSMessage.notificationResp:type_name -> NotificationResp + 103, // 102: WSMessage.notificationUpd:type_name -> NotificationUpd + 104, // 103: WSMessage.objectEditAccessReq:type_name -> ObjectEditAccessReq + 105, // 104: WSMessage.objectEditAccessResp:type_name -> ObjectEditAccessResp + 106, // 105: WSMessage.piquantConfigListReq:type_name -> PiquantConfigListReq + 107, // 106: WSMessage.piquantConfigListResp:type_name -> PiquantConfigListResp + 108, // 107: WSMessage.piquantConfigVersionReq:type_name -> PiquantConfigVersionReq + 109, // 108: WSMessage.piquantConfigVersionResp:type_name -> PiquantConfigVersionResp + 110, // 109: WSMessage.piquantConfigVersionsListReq:type_name -> PiquantConfigVersionsListReq + 111, // 110: WSMessage.piquantConfigVersionsListResp:type_name -> PiquantConfigVersionsListResp + 112, // 111: WSMessage.piquantCurrentVersionReq:type_name -> PiquantCurrentVersionReq + 113, // 112: WSMessage.piquantCurrentVersionResp:type_name -> PiquantCurrentVersionResp + 114, // 113: WSMessage.piquantVersionListReq:type_name -> PiquantVersionListReq + 115, // 114: WSMessage.piquantVersionListResp:type_name -> PiquantVersionListResp + 116, // 115: WSMessage.piquantWriteCurrentVersionReq:type_name -> PiquantWriteCurrentVersionReq + 117, // 116: WSMessage.piquantWriteCurrentVersionResp:type_name -> PiquantWriteCurrentVersionResp + 118, // 117: WSMessage.pseudoIntensityReq:type_name -> PseudoIntensityReq + 119, // 118: WSMessage.pseudoIntensityResp:type_name -> PseudoIntensityResp + 120, // 119: WSMessage.publishExpressionToZenodoReq:type_name -> PublishExpressionToZenodoReq + 121, // 120: WSMessage.publishExpressionToZenodoResp:type_name -> PublishExpressionToZenodoResp + 122, // 121: WSMessage.quantBlessReq:type_name -> QuantBlessReq + 123, // 122: WSMessage.quantBlessResp:type_name -> QuantBlessResp + 124, // 123: WSMessage.quantCombineListGetReq:type_name -> QuantCombineListGetReq + 125, // 124: WSMessage.quantCombineListGetResp:type_name -> QuantCombineListGetResp + 126, // 125: WSMessage.quantCombineListWriteReq:type_name -> QuantCombineListWriteReq + 127, // 126: WSMessage.quantCombineListWriteResp:type_name -> QuantCombineListWriteResp + 128, // 127: WSMessage.quantCombineReq:type_name -> QuantCombineReq + 129, // 128: WSMessage.quantCombineResp:type_name -> QuantCombineResp + 130, // 129: WSMessage.quantCreateReq:type_name -> QuantCreateReq + 131, // 130: WSMessage.quantCreateResp:type_name -> QuantCreateResp + 132, // 131: WSMessage.quantCreateUpd:type_name -> QuantCreateUpd + 133, // 132: WSMessage.quantDeleteReq:type_name -> QuantDeleteReq + 134, // 133: WSMessage.quantDeleteResp:type_name -> QuantDeleteResp + 135, // 134: WSMessage.quantGetReq:type_name -> QuantGetReq + 136, // 135: WSMessage.quantGetResp:type_name -> QuantGetResp + 137, // 136: WSMessage.quantLastOutputGetReq:type_name -> QuantLastOutputGetReq + 138, // 137: WSMessage.quantLastOutputGetResp:type_name -> QuantLastOutputGetResp + 139, // 138: WSMessage.quantListReq:type_name -> QuantListReq + 140, // 139: WSMessage.quantListResp:type_name -> QuantListResp + 141, // 140: WSMessage.quantPublishReq:type_name -> QuantPublishReq + 142, // 141: WSMessage.quantPublishResp:type_name -> QuantPublishResp + 143, // 142: WSMessage.quantUploadReq:type_name -> QuantUploadReq + 144, // 143: WSMessage.quantUploadResp:type_name -> QuantUploadResp + 145, // 144: WSMessage.regionOfInterestBulkDuplicateReq:type_name -> RegionOfInterestBulkDuplicateReq + 146, // 145: WSMessage.regionOfInterestBulkDuplicateResp:type_name -> RegionOfInterestBulkDuplicateResp + 147, // 146: WSMessage.regionOfInterestBulkWriteReq:type_name -> RegionOfInterestBulkWriteReq + 148, // 147: WSMessage.regionOfInterestBulkWriteResp:type_name -> RegionOfInterestBulkWriteResp + 149, // 148: WSMessage.regionOfInterestDeleteReq:type_name -> RegionOfInterestDeleteReq + 150, // 149: WSMessage.regionOfInterestDeleteResp:type_name -> RegionOfInterestDeleteResp + 151, // 150: WSMessage.regionOfInterestDisplaySettingsGetReq:type_name -> RegionOfInterestDisplaySettingsGetReq + 152, // 151: WSMessage.regionOfInterestDisplaySettingsGetResp:type_name -> RegionOfInterestDisplaySettingsGetResp + 153, // 152: WSMessage.regionOfInterestDisplaySettingsWriteReq:type_name -> RegionOfInterestDisplaySettingsWriteReq + 154, // 153: WSMessage.regionOfInterestDisplaySettingsWriteResp:type_name -> RegionOfInterestDisplaySettingsWriteResp + 155, // 154: WSMessage.regionOfInterestGetReq:type_name -> RegionOfInterestGetReq + 156, // 155: WSMessage.regionOfInterestGetResp:type_name -> RegionOfInterestGetResp + 157, // 156: WSMessage.regionOfInterestListReq:type_name -> RegionOfInterestListReq + 158, // 157: WSMessage.regionOfInterestListResp:type_name -> RegionOfInterestListResp + 159, // 158: WSMessage.regionOfInterestWriteReq:type_name -> RegionOfInterestWriteReq + 160, // 159: WSMessage.regionOfInterestWriteResp:type_name -> RegionOfInterestWriteResp + 161, // 160: WSMessage.runTestReq:type_name -> RunTestReq + 162, // 161: WSMessage.runTestResp:type_name -> RunTestResp + 163, // 162: WSMessage.scanAutoShareReq:type_name -> ScanAutoShareReq + 164, // 163: WSMessage.scanAutoShareResp:type_name -> ScanAutoShareResp + 165, // 164: WSMessage.scanAutoShareWriteReq:type_name -> ScanAutoShareWriteReq + 166, // 165: WSMessage.scanAutoShareWriteResp:type_name -> ScanAutoShareWriteResp + 167, // 166: WSMessage.scanBeamLocationsReq:type_name -> ScanBeamLocationsReq + 168, // 167: WSMessage.scanBeamLocationsResp:type_name -> ScanBeamLocationsResp + 169, // 168: WSMessage.scanDeleteReq:type_name -> ScanDeleteReq + 170, // 169: WSMessage.scanDeleteResp:type_name -> ScanDeleteResp + 171, // 170: WSMessage.scanEntryMetadataReq:type_name -> ScanEntryMetadataReq + 172, // 171: WSMessage.scanEntryMetadataResp:type_name -> ScanEntryMetadataResp + 173, // 172: WSMessage.scanEntryReq:type_name -> ScanEntryReq + 174, // 173: WSMessage.scanEntryResp:type_name -> ScanEntryResp + 175, // 174: WSMessage.scanGetReq:type_name -> ScanGetReq + 176, // 175: WSMessage.scanGetResp:type_name -> ScanGetResp + 177, // 176: WSMessage.scanListReq:type_name -> ScanListReq + 178, // 177: WSMessage.scanListResp:type_name -> ScanListResp + 179, // 178: WSMessage.scanListUpd:type_name -> ScanListUpd + 180, // 179: WSMessage.scanMetaLabelsAndTypesReq:type_name -> ScanMetaLabelsAndTypesReq + 181, // 180: WSMessage.scanMetaLabelsAndTypesResp:type_name -> ScanMetaLabelsAndTypesResp + 182, // 181: WSMessage.scanMetaWriteReq:type_name -> ScanMetaWriteReq + 183, // 182: WSMessage.scanMetaWriteResp:type_name -> ScanMetaWriteResp + 184, // 183: WSMessage.scanTriggerAutoQuantReq:type_name -> ScanTriggerAutoQuantReq + 185, // 184: WSMessage.scanTriggerAutoQuantResp:type_name -> ScanTriggerAutoQuantResp + 186, // 185: WSMessage.scanTriggerReImportReq:type_name -> ScanTriggerReImportReq + 187, // 186: WSMessage.scanTriggerReImportResp:type_name -> ScanTriggerReImportResp + 188, // 187: WSMessage.scanTriggerReImportUpd:type_name -> ScanTriggerReImportUpd + 189, // 188: WSMessage.scanUploadReq:type_name -> ScanUploadReq + 190, // 189: WSMessage.scanUploadResp:type_name -> ScanUploadResp + 191, // 190: WSMessage.scanUploadUpd:type_name -> ScanUploadUpd + 192, // 191: WSMessage.screenConfigurationDeleteReq:type_name -> ScreenConfigurationDeleteReq + 193, // 192: WSMessage.screenConfigurationDeleteResp:type_name -> ScreenConfigurationDeleteResp + 194, // 193: WSMessage.screenConfigurationGetReq:type_name -> ScreenConfigurationGetReq + 195, // 194: WSMessage.screenConfigurationGetResp:type_name -> ScreenConfigurationGetResp + 196, // 195: WSMessage.screenConfigurationListReq:type_name -> ScreenConfigurationListReq + 197, // 196: WSMessage.screenConfigurationListResp:type_name -> ScreenConfigurationListResp + 198, // 197: WSMessage.screenConfigurationWriteReq:type_name -> ScreenConfigurationWriteReq + 199, // 198: WSMessage.screenConfigurationWriteResp:type_name -> ScreenConfigurationWriteResp + 200, // 199: WSMessage.selectedImagePixelsReq:type_name -> SelectedImagePixelsReq + 201, // 200: WSMessage.selectedImagePixelsResp:type_name -> SelectedImagePixelsResp + 202, // 201: WSMessage.selectedImagePixelsWriteReq:type_name -> SelectedImagePixelsWriteReq + 203, // 202: WSMessage.selectedImagePixelsWriteResp:type_name -> SelectedImagePixelsWriteResp + 204, // 203: WSMessage.selectedScanEntriesReq:type_name -> SelectedScanEntriesReq + 205, // 204: WSMessage.selectedScanEntriesResp:type_name -> SelectedScanEntriesResp + 206, // 205: WSMessage.selectedScanEntriesWriteReq:type_name -> SelectedScanEntriesWriteReq + 207, // 206: WSMessage.selectedScanEntriesWriteResp:type_name -> SelectedScanEntriesWriteResp + 208, // 207: WSMessage.sendUserNotificationReq:type_name -> SendUserNotificationReq + 209, // 208: WSMessage.sendUserNotificationResp:type_name -> SendUserNotificationResp + 210, // 209: WSMessage.spectrumReq:type_name -> SpectrumReq + 211, // 210: WSMessage.spectrumResp:type_name -> SpectrumResp + 212, // 211: WSMessage.tagCreateReq:type_name -> TagCreateReq + 213, // 212: WSMessage.tagCreateResp:type_name -> TagCreateResp + 214, // 213: WSMessage.tagDeleteReq:type_name -> TagDeleteReq + 215, // 214: WSMessage.tagDeleteResp:type_name -> TagDeleteResp + 216, // 215: WSMessage.tagListReq:type_name -> TagListReq + 217, // 216: WSMessage.tagListResp:type_name -> TagListResp + 218, // 217: WSMessage.userAddRoleReq:type_name -> UserAddRoleReq + 219, // 218: WSMessage.userAddRoleResp:type_name -> UserAddRoleResp + 220, // 219: WSMessage.userDeleteRoleReq:type_name -> UserDeleteRoleReq + 221, // 220: WSMessage.userDeleteRoleResp:type_name -> UserDeleteRoleResp + 222, // 221: WSMessage.userDetailsReq:type_name -> UserDetailsReq + 223, // 222: WSMessage.userDetailsResp:type_name -> UserDetailsResp + 224, // 223: WSMessage.userDetailsWriteReq:type_name -> UserDetailsWriteReq + 225, // 224: WSMessage.userDetailsWriteResp:type_name -> UserDetailsWriteResp + 226, // 225: WSMessage.userGroupAddAdminReq:type_name -> UserGroupAddAdminReq + 227, // 226: WSMessage.userGroupAddAdminResp:type_name -> UserGroupAddAdminResp + 228, // 227: WSMessage.userGroupAddMemberReq:type_name -> UserGroupAddMemberReq + 229, // 228: WSMessage.userGroupAddMemberResp:type_name -> UserGroupAddMemberResp + 230, // 229: WSMessage.userGroupAddViewerReq:type_name -> UserGroupAddViewerReq + 231, // 230: WSMessage.userGroupAddViewerResp:type_name -> UserGroupAddViewerResp + 232, // 231: WSMessage.userGroupCreateReq:type_name -> UserGroupCreateReq + 233, // 232: WSMessage.userGroupCreateResp:type_name -> UserGroupCreateResp + 234, // 233: WSMessage.userGroupDeleteAdminReq:type_name -> UserGroupDeleteAdminReq + 235, // 234: WSMessage.userGroupDeleteAdminResp:type_name -> UserGroupDeleteAdminResp + 236, // 235: WSMessage.userGroupDeleteMemberReq:type_name -> UserGroupDeleteMemberReq + 237, // 236: WSMessage.userGroupDeleteMemberResp:type_name -> UserGroupDeleteMemberResp + 238, // 237: WSMessage.userGroupDeleteReq:type_name -> UserGroupDeleteReq + 239, // 238: WSMessage.userGroupDeleteResp:type_name -> UserGroupDeleteResp + 240, // 239: WSMessage.userGroupDeleteViewerReq:type_name -> UserGroupDeleteViewerReq + 241, // 240: WSMessage.userGroupDeleteViewerResp:type_name -> UserGroupDeleteViewerResp + 242, // 241: WSMessage.userGroupIgnoreJoinReq:type_name -> UserGroupIgnoreJoinReq + 243, // 242: WSMessage.userGroupIgnoreJoinResp:type_name -> UserGroupIgnoreJoinResp + 244, // 243: WSMessage.userGroupJoinListReq:type_name -> UserGroupJoinListReq + 245, // 244: WSMessage.userGroupJoinListResp:type_name -> UserGroupJoinListResp + 246, // 245: WSMessage.userGroupJoinReq:type_name -> UserGroupJoinReq + 247, // 246: WSMessage.userGroupJoinResp:type_name -> UserGroupJoinResp + 248, // 247: WSMessage.userGroupListJoinableReq:type_name -> UserGroupListJoinableReq + 249, // 248: WSMessage.userGroupListJoinableResp:type_name -> UserGroupListJoinableResp + 250, // 249: WSMessage.userGroupListReq:type_name -> UserGroupListReq + 251, // 250: WSMessage.userGroupListResp:type_name -> UserGroupListResp + 252, // 251: WSMessage.userGroupReq:type_name -> UserGroupReq + 253, // 252: WSMessage.userGroupResp:type_name -> UserGroupResp + 254, // 253: WSMessage.userGroupSetNameReq:type_name -> UserGroupSetNameReq + 255, // 254: WSMessage.userGroupSetNameResp:type_name -> UserGroupSetNameResp + 256, // 255: WSMessage.userListReq:type_name -> UserListReq + 257, // 256: WSMessage.userListResp:type_name -> UserListResp + 258, // 257: WSMessage.userNotificationSettingsReq:type_name -> UserNotificationSettingsReq + 259, // 258: WSMessage.userNotificationSettingsResp:type_name -> UserNotificationSettingsResp + 260, // 259: WSMessage.userNotificationSettingsUpd:type_name -> UserNotificationSettingsUpd + 261, // 260: WSMessage.userNotificationSettingsWriteReq:type_name -> UserNotificationSettingsWriteReq + 262, // 261: WSMessage.userNotificationSettingsWriteResp:type_name -> UserNotificationSettingsWriteResp + 263, // 262: WSMessage.userRoleListReq:type_name -> UserRoleListReq + 264, // 263: WSMessage.userRoleListResp:type_name -> UserRoleListResp + 265, // 264: WSMessage.userRolesListReq:type_name -> UserRolesListReq + 266, // 265: WSMessage.userRolesListResp:type_name -> UserRolesListResp + 267, // 266: WSMessage.userSearchReq:type_name -> UserSearchReq + 268, // 267: WSMessage.userSearchResp:type_name -> UserSearchResp + 269, // 268: WSMessage.widgetDataGetReq:type_name -> WidgetDataGetReq + 270, // 269: WSMessage.widgetDataGetResp:type_name -> WidgetDataGetResp + 271, // 270: WSMessage.widgetDataWriteReq:type_name -> WidgetDataWriteReq + 272, // 271: WSMessage.widgetDataWriteResp:type_name -> WidgetDataWriteResp + 273, // 272: WSMessage.zenodoDOIGetReq:type_name -> ZenodoDOIGetReq + 274, // 273: WSMessage.zenodoDOIGetResp:type_name -> ZenodoDOIGetResp + 274, // [274:274] is the sub-list for method output_type + 274, // [274:274] is the sub-list for method input_type + 274, // [274:274] is the sub-list for extension type_name + 274, // [274:274] is the sub-list for extension extendee + 0, // [0:274] is the sub-list for field type_name } func init() { file_websocket_proto_init() } @@ -6082,6 +6127,8 @@ func file_websocket_proto_init() { (*WSMessage_ExpressionWriteResp)(nil), (*WSMessage_GetOwnershipReq)(nil), (*WSMessage_GetOwnershipResp)(nil), + (*WSMessage_ImageBeamLocationVersionsReq)(nil), + (*WSMessage_ImageBeamLocationVersionsResp)(nil), (*WSMessage_ImageBeamLocationsReq)(nil), (*WSMessage_ImageBeamLocationsResp)(nil), (*WSMessage_ImageDeleteReq)(nil), diff --git a/internal/cmd-line-tools/beam-geom-v1-importer/main.go b/internal/cmd-line-tools/beam-geom-v1-importer/main.go new file mode 100644 index 00000000..96c8d8ea --- /dev/null +++ b/internal/cmd-line-tools/beam-geom-v1-importer/main.go @@ -0,0 +1,244 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "time" + + "github.com/pixlise/core/v4/api/dbCollections" + "github.com/pixlise/core/v4/core/awsutil" + "github.com/pixlise/core/v4/core/beamLocation" + "github.com/pixlise/core/v4/core/fileaccess" + "github.com/pixlise/core/v4/core/logger" + "github.com/pixlise/core/v4/core/mongoDBConnection" + protos "github.com/pixlise/core/v4/generated-protos" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + "google.golang.org/protobuf/proto" +) + +var t0 = time.Now().UnixMilli() + +func main() { + fmt.Printf("Started: %v\n", time.Now().String()) + + var destMongoSecret string + var sourceDataBucket string + var destEnvName string + + flag.StringVar(&destMongoSecret, "destMongoSecret", "", "Destination mongo DB secret") + flag.StringVar(&sourceDataBucket, "sourceDataBucket", "", "Data bucket") + flag.StringVar(&destEnvName, "destEnvName", "", "Destination Environment Name") + + flag.Parse() + + // Check they're not empty + checkNotEmpty := []string{ + sourceDataBucket, + destEnvName, + } + checkNotEmptyName := []string{ + "sourceDataBucket", + "destEnvName", + } + for c, s := range checkNotEmpty { + if len(s) <= 0 { + log.Fatalf("Parameter: %v was empty", checkNotEmptyName[c]) + } + } + + // Get a session for the bucket region + sess, err := awsutil.GetSession() + if err != nil { + log.Fatalf("Failed to create AWS session. Error: %v", err) + } + + s3svc, err := awsutil.GetS3(sess) + if err != nil { + log.Fatalf("Failed to create AWS S3 service. Error: %v", err) + } + + fs := fileaccess.MakeS3Access(s3svc) + + // Init logger - this used to be local=stdout, cloud env=cloudwatch, but we now write all logs to stdout + iLog := &logger.StdOutLogger{} + iLog.SetLogLevel(logger.LogInfo) + + // Connect to mongo + destMongoClient, err := mongoDBConnection.Connect(sess, destMongoSecret, iLog) + if err != nil { + fatalError(err) + } + + // Destination DB is the new pixlise one + destDB := destMongoClient.Database("prodCopy") //mongoDBConnection.GetDatabaseName("pixlise", destEnvName)) + + // Read the dataset ids that we want to find v1 geometry for + ctx := context.TODO() + coll := destDB.Collection(dbCollections.ScansName) + + cursor, err := coll.Find(ctx, bson.D{}, options.Find()) + if err != nil { + log.Fatalln(err) + } + + scans := []*protos.ScanItem{} + err = cursor.All(ctx, &scans) + if err != nil { + return + } + + for _, scanItem := range scans { + if scanItem.Instrument == protos.ScanInstrument_PIXL_FM && scanItem.ContentCounts["NormalSpectra"] > 0 { + log.Printf("Reading: %v [Sol %v - %v]", scanItem.Id, scanItem.Meta["Sol"], scanItem.Title) + + if sol, ok := scanItem.Meta["Sol"]; !ok || len(sol) <= 0 { + log.Printf(" SKIPPING scan %v: doesn't contain a sol in its meta data", scanItem.Id) + continue + } else { + if sol[0] < '0' || sol[0] > '9' { + log.Printf(" SKIPPING scan %v: sol %v is not valid", scanItem.Id, scanItem.Meta["Sol"]) + continue + } + } + + s3Path := fmt.Sprintf("Datasets/%v/dataset.bin", scanItem.Id) + exprBytes, err := fs.ReadObject(sourceDataBucket, s3Path) + if err != nil { + if fs.IsNotFoundError((err)) { + log.Printf(" SKIPPING scan %v: no data for this with v1 coordinates, maybe it's newer", scanItem.Id) + continue + } + + log.Fatalln(err) + } + + exprPB := &protos.Experiment{} + err = proto.Unmarshal(exprBytes, exprPB) + if err != nil { + log.Fatalf("Failed to decode experiment: %v", err) + } + + // Also read all images we have for this scan id + beamColl := destDB.Collection(dbCollections.ImageBeamLocationsName) + beamFilter := bson.D{{Key: "locationperscan.0.scanid", Value: scanItem.Id}} + + imgBeamItemResult, err := beamColl.Find(ctx, beamFilter, options.Find()) + + if err != nil { + if err == mongo.ErrNoDocuments { + log.Printf(" SKIPPING scan %v: No image beam locations found", scanItem.Id) + continue + } else { + log.Fatalf("Error when reading scan %v beam locations: %v", scanItem.Id, err) + } + } + + imageBeamLocations := []*protos.ImageLocations{} + err = imgBeamItemResult.All(ctx, &imageBeamLocations) + if err != nil { + log.Fatalf("Failed to read beam locations for scan: %v. Error: %v", scanItem.Id, err) + } + + for alignedIdx, img := range exprPB.AlignedContextImages { + imgId := fmt.Sprintf("%v/%v", scanItem.Id, img.Image) + + // Make sure we have an entry for this already. NOTE: we're comparing by ignoring the version number! + imgIdSansVersion := getWithoutVersion(imgId) + + var matchedBeamLocation *protos.ImageLocations + for _, loc := range imageBeamLocations { + thisLocWithoutVersion := getWithoutVersion(loc.ImageName) + if thisLocWithoutVersion == imgIdSansVersion { + matchedBeamLocation = loc + } + } + + if matchedBeamLocation == nil { + log.Printf(" SKIPPING %v: No beam locations found", imgId) + continue + } + + // Make sure there are no v1's already stored + if len(matchedBeamLocation.LocationPerScan) != 1 { + log.Printf(" SKIPPING %v: Beam Location had wrong count: %v", imgId, len(matchedBeamLocation.LocationPerScan)) + continue + } + + if matchedBeamLocation.LocationPerScan[0].BeamVersion != 2 { + log.Fatalf("Beam Location for %v did not contain expected version 2", imgId) + } + + // Double check some more stuff + if matchedBeamLocation.LocationPerScan[0].Instrument != scanItem.Instrument { + log.Fatalf("Beam Location for %v did not contain expected instrument", imgId) + } + if matchedBeamLocation.LocationPerScan[0].ScanId != scanItem.Id { + log.Fatalf("Beam Location for %v did not contain expected scanId", imgId) + } + + ijs := beamLocation.ReadIJs(alignedIdx, exprPB) + + // Check that they differ + if len(ijs) != len(matchedBeamLocation.LocationPerScan[0].Locations) { + log.Fatalf("Beam count from DB (%v) doesn't match beam count from experiment file (%v) for image: %v", len(matchedBeamLocation.LocationPerScan[0].Locations), len(ijs), imgId) + } + + equalCount := 0 + for c := 0; c < len(ijs); c++ { + if (ijs[c] == nil && matchedBeamLocation.LocationPerScan[0].Locations[c] == nil) || + (ijs[c].I == matchedBeamLocation.LocationPerScan[0].Locations[c].I && ijs[c].J == matchedBeamLocation.LocationPerScan[0].Locations[c].J) { + equalCount++ + } + } + + if equalCount > len(ijs)/2 { + log.Printf(" SKIPPING %v: Beam v2 is too similar to v1", imgId) + continue + } + + // Set up an update for this so we just add to the existing array of beam locations in the DB + matchedBeamLocation.LocationPerScan = append(matchedBeamLocation.LocationPerScan, &protos.ImageLocationsForScan{ + ScanId: scanItem.Id, + BeamVersion: 1, + Instrument: scanItem.Instrument, + Locations: ijs, + }) + + // Write it back + beamFilter = bson.D{{Key: "_id", Value: matchedBeamLocation.ImageName}} + updResult, err := beamColl.ReplaceOne(ctx, beamFilter, matchedBeamLocation, options.Replace()) + + if err != nil { + log.Fatalf("Failed to import beam for: %v. Error: %v", imgId, err) + } + + if updResult.ModifiedCount != 1 || updResult.MatchedCount != 1 { + log.Fatalf("Got unexpected replace result for: %v. %+v", imgId, updResult) + } + + log.Printf("SUCCESS importing v1 for: %v", imgId) + } + } + } + + printFinishStats() +} + +func getWithoutVersion(fileName string) string { + return fileName[0:len(fileName)-6] + "__" + fileName[len(fileName)-4:] +} + +func fatalError(err error) { + printFinishStats() + log.Fatal(err) +} + +func printFinishStats() { + t1 := time.Now().UnixMilli() + sec := (t1 - t0) / 1000 + fmt.Printf("Runtime %v seconds\n", sec) +}