From 22d5a8387c0cf613855939d0483cca14ddb46517 Mon Sep 17 00:00:00 2001 From: Nathan Swartz <112000252+swartzn@users.noreply.github.com> Date: Thu, 11 Sep 2025 08:25:36 -0500 Subject: [PATCH] feat(rst): add support for user extended attributes and metadata tags --- cpp/beeremote.pb.cc | 247 +++-- cpp/beeremote.pb.h | 43 +- cpp/flex.pb.cc | 1149 +++++++++++++++++++--- cpp/flex.pb.h | 501 +++++++++- go/beeremote/beeremote.pb.go | 446 +++++---- go/beeremote/beeremote_protoopaque.pb.go | 455 +++++---- go/flex/flex.pb.go | 775 +++++++++------ go/flex/flex_protoopaque.pb.go | 803 +++++++++------ proto/beeremote.proto | 1 + proto/flex.proto | 6 + rust/beeremote.rs | 2 + rust/flex.rs | 24 + 12 files changed, 3124 insertions(+), 1328 deletions(-) diff --git a/cpp/beeremote.pb.cc b/cpp/beeremote.pb.cc index ebb6d81..cefe9b6 100644 --- a/cpp/beeremote.pb.cc +++ b/cpp/beeremote.pb.cc @@ -408,6 +408,7 @@ inline constexpr JobRequest::Impl_::Impl_( force_{false}, stub_local_{false}, update_{false}, + enable_xattr_{false}, type_{}, _oneof_case_{} {} @@ -686,6 +687,7 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.stub_local_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.generation_status_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.update_), + PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.enable_xattr_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.type_), ~0u, ~0u, @@ -698,6 +700,7 @@ const ::uint32_t ~0u, 0, 1, + 2, PROTOBUF_FIELD_OFFSET(::beeremote::Job_Status, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::beeremote::Job_Status, _internal_metadata_), ~0u, // no _extensions_ @@ -925,25 +928,25 @@ static const ::_pbi::MigrationSchema {0, 9, -1, sizeof(::beeremote::SubmitJobRequest)}, {10, 20, -1, sizeof(::beeremote::SubmitJobResponse)}, {22, -1, -1, sizeof(::beeremote::JobRequest_GenerationStatus)}, - {32, 52, -1, sizeof(::beeremote::JobRequest)}, - {63, 74, -1, sizeof(::beeremote::Job_Status)}, - {77, 92, -1, sizeof(::beeremote::Job)}, - {99, 110, -1, sizeof(::beeremote::JobResult_WorkResult)}, - {113, 124, -1, sizeof(::beeremote::JobResult)}, - {127, 137, -1, sizeof(::beeremote::UpdatePathsRequest)}, - {139, 149, -1, sizeof(::beeremote::UpdatePathsResponse)}, - {151, 161, -1, sizeof(::beeremote::UpdateJobsRequest_RemoteTargetsEntry_DoNotUse)}, - {163, 176, -1, sizeof(::beeremote::UpdateJobsRequest)}, - {181, -1, -1, sizeof(::beeremote::UpdateJobsResponse)}, - {192, -1, -1, sizeof(::beeremote::GetJobsRequest_QueryIdAndPath)}, - {202, -1, -1, sizeof(::beeremote::GetJobsRequest)}, - {217, -1, -1, sizeof(::beeremote::GetJobsResponse)}, - {227, 236, -1, sizeof(::beeremote::UpdateWorkRequest)}, - {237, -1, -1, sizeof(::beeremote::UpdateWorkResponse)}, - {245, -1, -1, sizeof(::beeremote::GetRSTConfigRequest)}, - {253, -1, -1, sizeof(::beeremote::GetRSTConfigResponse)}, - {262, -1, -1, sizeof(::beeremote::GetStubContentsRequest)}, - {271, 281, -1, sizeof(::beeremote::GetStubContentsResponse)}, + {32, 53, -1, sizeof(::beeremote::JobRequest)}, + {65, 76, -1, sizeof(::beeremote::Job_Status)}, + {79, 94, -1, sizeof(::beeremote::Job)}, + {101, 112, -1, sizeof(::beeremote::JobResult_WorkResult)}, + {115, 126, -1, sizeof(::beeremote::JobResult)}, + {129, 139, -1, sizeof(::beeremote::UpdatePathsRequest)}, + {141, 151, -1, sizeof(::beeremote::UpdatePathsResponse)}, + {153, 163, -1, sizeof(::beeremote::UpdateJobsRequest_RemoteTargetsEntry_DoNotUse)}, + {165, 178, -1, sizeof(::beeremote::UpdateJobsRequest)}, + {183, -1, -1, sizeof(::beeremote::UpdateJobsResponse)}, + {194, -1, -1, sizeof(::beeremote::GetJobsRequest_QueryIdAndPath)}, + {204, -1, -1, sizeof(::beeremote::GetJobsRequest)}, + {219, -1, -1, sizeof(::beeremote::GetJobsResponse)}, + {229, 238, -1, sizeof(::beeremote::UpdateWorkRequest)}, + {239, -1, -1, sizeof(::beeremote::UpdateWorkResponse)}, + {247, -1, -1, sizeof(::beeremote::GetRSTConfigRequest)}, + {255, -1, -1, sizeof(::beeremote::GetRSTConfigResponse)}, + {264, -1, -1, sizeof(::beeremote::GetStubContentsRequest)}, + {273, 283, -1, sizeof(::beeremote::GetStubContentsResponse)}, }; static const ::_pb::Message* const file_default_instances[] = { &::beeremote::_SubmitJobRequest_default_instance_._instance, @@ -981,86 +984,87 @@ const char descriptor_table_protodef_beeremote_2eproto[] ABSL_ATTRIBUTE_SECTION_ "ALID\020\000\022\013\n\007CREATED\020\001\022\014\n\010EXISTING\020\002\022\017\n\013NOT" "_ALLOWED\020\003\022\024\n\020ALREADY_COMPLETE\020\004\022\025\n\021ALRE" "ADY_OFFLOADED\020\005\022\027\n\023FAILED_PRECONDITION\020\006" - "\"\230\004\n\nJobRequest\022\014\n\004path\030\001 \001(\t\022\014\n\004name\030\002 " + "\"\304\004\n\nJobRequest\022\014\n\004path\030\001 \001(\t\022\014\n\004name\030\002 " "\001(\t\022\020\n\010priority\030\003 \001(\005\022\035\n\025remote_storage_" "target\030\004 \001(\r\022\035\n\004sync\030\n \001(\0132\r.flex.SyncJo" "bH\000\022\035\n\004mock\030\013 \001(\0132\r.flex.MockJobH\000\022#\n\007bu" "ilder\030\014 \001(\0132\020.flex.BuilderJobH\000\022\r\n\005force" "\030\005 \001(\010\022\022\n\nstub_local\030\007 \001(\010\022A\n\021generation" "_status\030\010 \001(\0132&.beeremote.JobRequest.Gen" - "erationStatus\022\023\n\006update\030\t \001(\010H\001\210\001\001\032\313\001\n\020G" - "enerationStatus\022;\n\005state\030\001 \001(\0162,.beeremo" - "te.JobRequest.GenerationStatus.State\022\017\n\007" - "message\030\002 \001(\t\"i\n\005State\022\017\n\013UNSPECIFIED\020\000\022" - "\024\n\020ALREADY_COMPLETE\020\001\022\025\n\021ALREADY_OFFLOAD" - "ED\020\002\022\027\n\023FAILED_PRECONDITION\020\003\022\t\n\005ERROR\020\004" - "B\006\n\004typeB\t\n\007_update\"\261\004\n\003Job\022\n\n\002id\030\001 \001(\t\022" - "&\n\007request\030\002 \001(\0132\025.beeremote.JobRequest\022" - "+\n\007created\030\003 \001(\0132\032.google.protobuf.Times" - "tamp\022%\n\006status\030\004 \001(\0132\025.beeremote.Job.Sta" - "tus\022\023\n\013external_id\030\005 \001(\t\0224\n\013start_mtime\030" - "\006 \001(\0132\032.google.protobuf.TimestampH\000\210\001\001\0223" - "\n\nstop_mtime\030\007 \001(\0132\032.google.protobuf.Tim" - "estampH\001\210\001\001\032k\n\006Status\022#\n\005state\030\001 \001(\0162\024.b" - "eeremote.Job.State\022\017\n\007message\030\002 \001(\t\022+\n\007u" - "pdated\030\003 \001(\0132\032.google.protobuf.Timestamp" - "\"\225\001\n\005State\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001" - "\022\016\n\nUNASSIGNED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007RUNNI" - "NG\020\004\022\t\n\005ERROR\020\006\022\n\n\006FAILED\020\007\022\r\n\tCANCELLED" - "\020\010\022\r\n\tCOMPLETED\020\t\022\r\n\tOFFLOADED\020\nB\016\n\014_sta" - "rt_mtimeB\r\n\013_stop_mtime\"\337\001\n\tJobResult\022\033\n" - "\003job\030\001 \001(\0132\016.beeremote.Job\022(\n\rwork_reque" - "sts\030\002 \003(\0132\021.flex.WorkRequest\0225\n\014work_res" - "ults\030\003 \003(\0132\037.beeremote.JobResult.WorkRes" - "ult\032T\n\nWorkResult\022\030\n\004work\030\001 \001(\0132\n.flex.W" - "ork\022\025\n\rassigned_node\030\002 \001(\t\022\025\n\rassigned_p" - "ool\030\003 \001(\t\"a\n\022UpdatePathsRequest\022\023\n\013path_" - "prefix\030\001 \001(\t\0226\n\020requested_update\030\002 \001(\0132\034" - ".beeremote.UpdateJobsRequest\"Y\n\023UpdatePa" - "thsResponse\022\014\n\004path\030\001 \001(\t\0224\n\rupdate_resu" - "lt\030\002 \001(\0132\035.beeremote.UpdateJobsResponse\"" - "\311\002\n\021UpdateJobsRequest\022\014\n\004path\030\001 \001(\t\022\023\n\006j" - "ob_id\030\002 \001(\tH\000\210\001\001\022G\n\016remote_targets\030\003 \003(\013" - "2/.beeremote.UpdateJobsRequest.RemoteTar" - "getsEntry\0228\n\tnew_state\030\n \001(\0162%.beeremote" - ".UpdateJobsRequest.NewState\022\024\n\014force_upd" - "ate\030\004 \001(\010\0324\n\022RemoteTargetsEntry\022\013\n\003key\030\001" - " \001(\r\022\r\n\005value\030\002 \001(\010:\0028\001\"7\n\010NewState\022\017\n\013U" - "NSPECIFIED\020\000\022\r\n\tCANCELLED\020\001\022\013\n\007DELETED\020\002" - "B\t\n\007_job_id\"X\n\022UpdateJobsResponse\022\n\n\002ok\030" - "\001 \001(\010\022\017\n\007message\030\002 \001(\t\022%\n\007results\030\003 \003(\0132" - "\024.beeremote.JobResult\"\236\002\n\016GetJobsRequest" - "\022F\n\022by_job_id_and_path\030\001 \001(\0132(.beeremote" - ".GetJobsRequest.QueryIdAndPathH\000\022\027\n\rby_e" - "xact_path\030\002 \001(\tH\000\022\030\n\016by_path_prefix\030\003 \001(" - "\tH\000\022\035\n\025include_work_requests\030\004 \001(\010\022\034\n\024in" - "clude_work_results\030\005 \001(\010\022\033\n\023update_work_" - "results\030\006 \001(\010\032.\n\016QueryIdAndPath\022\016\n\006job_i" - "d\030\001 \001(\t\022\014\n\004path\030\002 \001(\tB\007\n\005query\"F\n\017GetJob" - "sResponse\022\014\n\004path\030\001 \001(\t\022%\n\007results\030\002 \003(\013" - "2\024.beeremote.JobResult\"-\n\021UpdateWorkRequ" - "est\022\030\n\004work\030\001 \001(\0132\n.flex.Work\"\024\n\022UpdateW" - "orkResponse\"\025\n\023GetRSTConfigRequest\"\?\n\024Ge" - "tRSTConfigResponse\022\'\n\004rsts\030\001 \003(\0132\031.flex." - "RemoteStorageTarget\"&\n\026GetStubContentsRe" - "quest\022\014\n\004path\030\001 \001(\t\"S\n\027GetStubContentsRe" - "sponse\022\023\n\006rst_id\030\001 \001(\rH\000\210\001\001\022\020\n\003url\030\002 \001(\t" - "H\001\210\001\001B\t\n\007_rst_idB\006\n\004_url2\250\004\n\tBeeRemote\022F" - "\n\tSubmitJob\022\033.beeremote.SubmitJobRequest" - "\032\034.beeremote.SubmitJobResponse\022N\n\013Update" - "Paths\022\035.beeremote.UpdatePathsRequest\032\036.b" - "eeremote.UpdatePathsResponse0\001\022I\n\nUpdate" - "Jobs\022\034.beeremote.UpdateJobsRequest\032\035.bee" - "remote.UpdateJobsResponse\022B\n\007GetJobs\022\031.b" - "eeremote.GetJobsRequest\032\032.beeremote.GetJ" - "obsResponse0\001\022I\n\nUpdateWork\022\034.beeremote." - "UpdateWorkRequest\032\035.beeremote.UpdateWork" - "Response\022O\n\014GetRSTConfig\022\036.beeremote.Get" - "RSTConfigRequest\032\037.beeremote.GetRSTConfi" - "gResponse\022X\n\017GetStubContents\022!.beeremote" - ".GetStubContentsRequest\032\".beeremote.GetS" - "tubContentsResponseB,Z*github.com/thinkp" - "arq/protobuf/go/beeremoteb\006proto3" + "erationStatus\022\023\n\006update\030\t \001(\010H\001\210\001\001\022\031\n\014en" + "able_xattr\030\r \001(\010H\002\210\001\001\032\313\001\n\020GenerationStat" + "us\022;\n\005state\030\001 \001(\0162,.beeremote.JobRequest" + ".GenerationStatus.State\022\017\n\007message\030\002 \001(\t" + "\"i\n\005State\022\017\n\013UNSPECIFIED\020\000\022\024\n\020ALREADY_CO" + "MPLETE\020\001\022\025\n\021ALREADY_OFFLOADED\020\002\022\027\n\023FAILE" + "D_PRECONDITION\020\003\022\t\n\005ERROR\020\004B\006\n\004typeB\t\n\007_" + "updateB\017\n\r_enable_xattr\"\261\004\n\003Job\022\n\n\002id\030\001 " + "\001(\t\022&\n\007request\030\002 \001(\0132\025.beeremote.JobRequ" + "est\022+\n\007created\030\003 \001(\0132\032.google.protobuf.T" + "imestamp\022%\n\006status\030\004 \001(\0132\025.beeremote.Job" + ".Status\022\023\n\013external_id\030\005 \001(\t\0224\n\013start_mt" + "ime\030\006 \001(\0132\032.google.protobuf.TimestampH\000\210" + "\001\001\0223\n\nstop_mtime\030\007 \001(\0132\032.google.protobuf" + ".TimestampH\001\210\001\001\032k\n\006Status\022#\n\005state\030\001 \001(\016" + "2\024.beeremote.Job.State\022\017\n\007message\030\002 \001(\t\022" + "+\n\007updated\030\003 \001(\0132\032.google.protobuf.Times" + "tamp\"\225\001\n\005State\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNO" + "WN\020\001\022\016\n\nUNASSIGNED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007R" + "UNNING\020\004\022\t\n\005ERROR\020\006\022\n\n\006FAILED\020\007\022\r\n\tCANCE" + "LLED\020\010\022\r\n\tCOMPLETED\020\t\022\r\n\tOFFLOADED\020\nB\016\n\014" + "_start_mtimeB\r\n\013_stop_mtime\"\337\001\n\tJobResul" + "t\022\033\n\003job\030\001 \001(\0132\016.beeremote.Job\022(\n\rwork_r" + "equests\030\002 \003(\0132\021.flex.WorkRequest\0225\n\014work" + "_results\030\003 \003(\0132\037.beeremote.JobResult.Wor" + "kResult\032T\n\nWorkResult\022\030\n\004work\030\001 \001(\0132\n.fl" + "ex.Work\022\025\n\rassigned_node\030\002 \001(\t\022\025\n\rassign" + "ed_pool\030\003 \001(\t\"a\n\022UpdatePathsRequest\022\023\n\013p" + "ath_prefix\030\001 \001(\t\0226\n\020requested_update\030\002 \001" + "(\0132\034.beeremote.UpdateJobsRequest\"Y\n\023Upda" + "tePathsResponse\022\014\n\004path\030\001 \001(\t\0224\n\rupdate_" + "result\030\002 \001(\0132\035.beeremote.UpdateJobsRespo" + "nse\"\311\002\n\021UpdateJobsRequest\022\014\n\004path\030\001 \001(\t\022" + "\023\n\006job_id\030\002 \001(\tH\000\210\001\001\022G\n\016remote_targets\030\003" + " \003(\0132/.beeremote.UpdateJobsRequest.Remot" + "eTargetsEntry\0228\n\tnew_state\030\n \001(\0162%.beere" + "mote.UpdateJobsRequest.NewState\022\024\n\014force" + "_update\030\004 \001(\010\0324\n\022RemoteTargetsEntry\022\013\n\003k" + "ey\030\001 \001(\r\022\r\n\005value\030\002 \001(\010:\0028\001\"7\n\010NewState\022" + "\017\n\013UNSPECIFIED\020\000\022\r\n\tCANCELLED\020\001\022\013\n\007DELET" + "ED\020\002B\t\n\007_job_id\"X\n\022UpdateJobsResponse\022\n\n" + "\002ok\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\022%\n\007results\030\003 " + "\003(\0132\024.beeremote.JobResult\"\236\002\n\016GetJobsReq" + "uest\022F\n\022by_job_id_and_path\030\001 \001(\0132(.beere" + "mote.GetJobsRequest.QueryIdAndPathH\000\022\027\n\r" + "by_exact_path\030\002 \001(\tH\000\022\030\n\016by_path_prefix\030" + "\003 \001(\tH\000\022\035\n\025include_work_requests\030\004 \001(\010\022\034" + "\n\024include_work_results\030\005 \001(\010\022\033\n\023update_w" + "ork_results\030\006 \001(\010\032.\n\016QueryIdAndPath\022\016\n\006j" + "ob_id\030\001 \001(\t\022\014\n\004path\030\002 \001(\tB\007\n\005query\"F\n\017Ge" + "tJobsResponse\022\014\n\004path\030\001 \001(\t\022%\n\007results\030\002" + " \003(\0132\024.beeremote.JobResult\"-\n\021UpdateWork" + "Request\022\030\n\004work\030\001 \001(\0132\n.flex.Work\"\024\n\022Upd" + "ateWorkResponse\"\025\n\023GetRSTConfigRequest\"\?" + "\n\024GetRSTConfigResponse\022\'\n\004rsts\030\001 \003(\0132\031.f" + "lex.RemoteStorageTarget\"&\n\026GetStubConten" + "tsRequest\022\014\n\004path\030\001 \001(\t\"S\n\027GetStubConten" + "tsResponse\022\023\n\006rst_id\030\001 \001(\rH\000\210\001\001\022\020\n\003url\030\002" + " \001(\tH\001\210\001\001B\t\n\007_rst_idB\006\n\004_url2\250\004\n\tBeeRemo" + "te\022F\n\tSubmitJob\022\033.beeremote.SubmitJobReq" + "uest\032\034.beeremote.SubmitJobResponse\022N\n\013Up" + "datePaths\022\035.beeremote.UpdatePathsRequest" + "\032\036.beeremote.UpdatePathsResponse0\001\022I\n\nUp" + "dateJobs\022\034.beeremote.UpdateJobsRequest\032\035" + ".beeremote.UpdateJobsResponse\022B\n\007GetJobs" + "\022\031.beeremote.GetJobsRequest\032\032.beeremote." + "GetJobsResponse0\001\022I\n\nUpdateWork\022\034.beerem" + "ote.UpdateWorkRequest\032\035.beeremote.Update" + "WorkResponse\022O\n\014GetRSTConfig\022\036.beeremote" + ".GetRSTConfigRequest\032\037.beeremote.GetRSTC" + "onfigResponse\022X\n\017GetStubContents\022!.beere" + "mote.GetStubContentsRequest\032\".beeremote." + "GetStubContentsResponseB,Z*github.com/th" + "inkparq/protobuf/go/beeremoteb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_beeremote_2eproto_deps[2] = { @@ -1071,7 +1075,7 @@ static ::absl::once_flag descriptor_table_beeremote_2eproto_once; PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_beeremote_2eproto = { false, false, - 3593, + 3637, descriptor_table_protodef_beeremote_2eproto, "beeremote.proto", &descriptor_table_beeremote_2eproto_once, @@ -2099,9 +2103,9 @@ JobRequest::JobRequest( offsetof(Impl_, priority_), reinterpret_cast(&from._impl_) + offsetof(Impl_, priority_), - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, priority_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); switch (type_case()) { case TYPE_NOT_SET: break; @@ -2132,9 +2136,9 @@ inline void JobRequest::SharedCtor(::_pb::Arena* arena) { ::memset(reinterpret_cast(&_impl_) + offsetof(Impl_, generation_status_), 0, - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, generation_status_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); } JobRequest::~JobRequest() { // @@protoc_insertion_point(destructor:beeremote.JobRequest) @@ -2225,15 +2229,15 @@ const ::google::protobuf::internal::ClassData* JobRequest::GetClassData() const return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { +const ::_pbi::TcParseTable<4, 12, 4, 45, 2> JobRequest::_table_ = { { PROTOBUF_FIELD_OFFSET(JobRequest, _impl_._has_bits_), 0, // no _extensions_ - 12, 120, // max_field_number, fast_idx_mask + 13, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294963232, // skipmap + 4294959136, // skipmap offsetof(decltype(_table_), field_entries), - 11, // num_field_entries + 12, // num_field_entries 4, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), @@ -2272,7 +2276,9 @@ const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, + // optional bool enable_xattr = 13; + {::_pbi::TcParser::SingularVarintNoZag1(), + {104, 2, 0, PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.enable_xattr_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, }}, {{ @@ -2311,6 +2317,9 @@ const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { // .flex.BuilderJob builder = 12; {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.type_.builder_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)}, + // optional bool enable_xattr = 13; + {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.enable_xattr_), _Internal::kHasBitsOffset + 2, 0, + (0 | ::_fl::kFcOptional | ::_fl::kBool)}, }}, {{ {::_pbi::TcParser::GetTable<::beeremote::JobRequest_GenerationStatus>()}, {::_pbi::TcParser::GetTable<::flex::SyncJob>()}, @@ -2341,7 +2350,11 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { ::memset(&_impl_.priority_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.stub_local_) - reinterpret_cast(&_impl_.priority_)) + sizeof(_impl_.stub_local_)); - _impl_.update_ = false; + if (cached_has_bits & 0x00000006u) { + ::memset(&_impl_.update_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.enable_xattr_) - + reinterpret_cast(&_impl_.update_)) + sizeof(_impl_.enable_xattr_)); + } clear_type(); _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); @@ -2443,6 +2456,13 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { default: break; } + // optional bool enable_xattr = 13; + if (cached_has_bits & 0x00000004u) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray( + 13, this_._internal_enable_xattr(), target); + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -2507,11 +2527,15 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { total_size += 2; } } - { + if (cached_has_bits & 0x00000006u) { // optional bool update = 9; if (cached_has_bits & 0x00000002u) { total_size += 2; } + // optional bool enable_xattr = 13; + if (cached_has_bits & 0x00000004u) { + total_size += 2; + } } switch (this_.type_case()) { // .flex.SyncJob sync = 10; @@ -2577,8 +2601,13 @@ void JobRequest::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::goog if (from._internal_stub_local() != 0) { _this->_impl_.stub_local_ = from._impl_.stub_local_; } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.update_ = from._impl_.update_; + if (cached_has_bits & 0x00000006u) { + if (cached_has_bits & 0x00000002u) { + _this->_impl_.update_ = from._impl_.update_; + } + if (cached_has_bits & 0x00000004u) { + _this->_impl_.enable_xattr_ = from._impl_.enable_xattr_; + } } _this->_impl_._has_bits_[0] |= cached_has_bits; if (const uint32_t oneof_from_case = from._impl_._oneof_case_[0]) { @@ -2643,8 +2672,8 @@ void JobRequest::InternalSwap(JobRequest* PROTOBUF_RESTRICT other) { ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, &other->_impl_.path_, arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.update_) - + sizeof(JobRequest::_impl_.update_) + PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.enable_xattr_) + + sizeof(JobRequest::_impl_.enable_xattr_) - PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.generation_status_)>( reinterpret_cast(&_impl_.generation_status_), reinterpret_cast(&other->_impl_.generation_status_)); diff --git a/cpp/beeremote.pb.h b/cpp/beeremote.pb.h index dc3110f..8ae68f9 100644 --- a/cpp/beeremote.pb.h +++ b/cpp/beeremote.pb.h @@ -3265,6 +3265,7 @@ class JobRequest final : public ::google::protobuf::Message kForceFieldNumber = 5, kStubLocalFieldNumber = 7, kUpdateFieldNumber = 9, + kEnableXattrFieldNumber = 13, kSyncFieldNumber = 10, kMockFieldNumber = 11, kBuilderFieldNumber = 12, @@ -3366,6 +3367,17 @@ class JobRequest final : public ::google::protobuf::Message bool _internal_update() const; void _internal_set_update(bool value); + public: + // optional bool enable_xattr = 13; + bool has_enable_xattr() const; + void clear_enable_xattr() ; + bool enable_xattr() const; + void set_enable_xattr(bool value); + + private: + bool _internal_enable_xattr() const; + void _internal_set_enable_xattr(bool value); + public: // .flex.SyncJob sync = 10; bool has_sync() const; @@ -3436,7 +3448,7 @@ class JobRequest final : public ::google::protobuf::Message inline void clear_has_type(); friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 4, 11, 4, + 4, 12, 4, 45, 2> _table_; @@ -3464,6 +3476,7 @@ class JobRequest final : public ::google::protobuf::Message bool force_; bool stub_local_; bool update_; + bool enable_xattr_; union TypeUnion { constexpr TypeUnion() : _constinit_{} {} ::google::protobuf::internal::ConstantInitialized _constinit_; @@ -5949,6 +5962,34 @@ inline void JobRequest::_internal_set_update(bool value) { _impl_.update_ = value; } +// optional bool enable_xattr = 13; +inline bool JobRequest::has_enable_xattr() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline void JobRequest::clear_enable_xattr() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = false; + _impl_._has_bits_[0] &= ~0x00000004u; +} +inline bool JobRequest::enable_xattr() const { + // @@protoc_insertion_point(field_get:beeremote.JobRequest.enable_xattr) + return _internal_enable_xattr(); +} +inline void JobRequest::set_enable_xattr(bool value) { + _internal_set_enable_xattr(value); + _impl_._has_bits_[0] |= 0x00000004u; + // @@protoc_insertion_point(field_set:beeremote.JobRequest.enable_xattr) +} +inline bool JobRequest::_internal_enable_xattr() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.enable_xattr_; +} +inline void JobRequest::_internal_set_enable_xattr(bool value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = value; +} + inline bool JobRequest::has_type() const { return type_case() != TYPE_NOT_SET; } diff --git a/cpp/flex.pb.cc b/cpp/flex.pb.cc index 8aadd43..ddfb3c7 100644 --- a/cpp/flex.pb.cc +++ b/cpp/flex.pb.cc @@ -174,6 +174,24 @@ struct UpdateConfigResponseDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UpdateConfigResponseDefaultTypeInternal _UpdateConfigResponse_default_instance_; + template +PROTOBUF_CONSTEXPR SyncJob_MetaTagsEntry_DoNotUse::SyncJob_MetaTagsEntry_DoNotUse(::_pbi::ConstantInitialized) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : SyncJob_MetaTagsEntry_DoNotUse::MapEntry(_class_data_.base()){} +#else // PROTOBUF_CUSTOM_VTABLE + : SyncJob_MetaTagsEntry_DoNotUse::MapEntry() { +} +#endif // PROTOBUF_CUSTOM_VTABLE +struct SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal { + PROTOBUF_CONSTEXPR SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal() {} + union { + SyncJob_MetaTagsEntry_DoNotUse _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal _SyncJob_MetaTagsEntry_DoNotUse_default_instance_; inline constexpr RemoteStorageTarget_S3::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept @@ -268,6 +286,60 @@ struct RemoteStorageTarget_POSIXDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RemoteStorageTarget_POSIXDefaultTypeInternal _RemoteStorageTarget_POSIX_default_instance_; + template +PROTOBUF_CONSTEXPR JobRequestCfg_MetaTagsEntry_DoNotUse::JobRequestCfg_MetaTagsEntry_DoNotUse(::_pbi::ConstantInitialized) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : JobRequestCfg_MetaTagsEntry_DoNotUse::MapEntry(_class_data_.base()){} +#else // PROTOBUF_CUSTOM_VTABLE + : JobRequestCfg_MetaTagsEntry_DoNotUse::MapEntry() { +} +#endif // PROTOBUF_CUSTOM_VTABLE +struct JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal { + PROTOBUF_CONSTEXPR JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal() {} + union { + JobRequestCfg_MetaTagsEntry_DoNotUse _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal _JobRequestCfg_MetaTagsEntry_DoNotUse_default_instance_; + template +PROTOBUF_CONSTEXPR JobLockedInfo_UserXattrsEntry_DoNotUse::JobLockedInfo_UserXattrsEntry_DoNotUse(::_pbi::ConstantInitialized) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : JobLockedInfo_UserXattrsEntry_DoNotUse::MapEntry(_class_data_.base()){} +#else // PROTOBUF_CUSTOM_VTABLE + : JobLockedInfo_UserXattrsEntry_DoNotUse::MapEntry() { +} +#endif // PROTOBUF_CUSTOM_VTABLE +struct JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal { + PROTOBUF_CONSTEXPR JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal() {} + union { + JobLockedInfo_UserXattrsEntry_DoNotUse _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal _JobLockedInfo_UserXattrsEntry_DoNotUse_default_instance_; + template +PROTOBUF_CONSTEXPR JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(::_pbi::ConstantInitialized) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::MapEntry(_class_data_.base()){} +#else // PROTOBUF_CUSTOM_VTABLE + : JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::MapEntry() { +} +#endif // PROTOBUF_CUSTOM_VTABLE +struct JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal { + PROTOBUF_CONSTEXPR JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal() {} + union { + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal _JobLockedInfo_RemoteUserXattrsEntry_DoNotUse_default_instance_; inline constexpr HeartbeatRequest::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept @@ -483,6 +555,8 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT inline constexpr JobLockedInfo::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept : _cached_size_{0}, + user_xattrs_{}, + remote_user_xattrs_{}, stub_url_path_( &::google::protobuf::internal::fixed_address_empty_string, ::_pbi::ConstantInitialized()), @@ -546,6 +620,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT inline constexpr SyncJob::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept : _cached_size_{0}, + meta_tags_{}, remote_path_( &::google::protobuf::internal::fixed_address_empty_string, ::_pbi::ConstantInitialized()), @@ -553,7 +628,8 @@ inline constexpr SyncJob::Impl_::Impl_( operation_{static_cast< ::flex::SyncJob_Operation >(0)}, overwrite_{false}, flatten_{false}, - update_{false} {} + update_{false}, + enable_xattr_{false} {} template PROTOBUF_CONSTEXPR SyncJob::SyncJob(::_pbi::ConstantInitialized) @@ -634,6 +710,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT inline constexpr JobRequestCfg::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept : _cached_size_{0}, + meta_tags_{}, path_( &::google::protobuf::internal::fixed_address_empty_string, ::_pbi::ConstantInitialized()), @@ -647,7 +724,8 @@ inline constexpr JobRequestCfg::Impl_::Impl_( overwrite_{false}, flatten_{false}, force_{false}, - update_{false} {} + update_{false}, + enable_xattr_{false} {} template PROTOBUF_CONSTEXPR JobRequestCfg::JobRequestCfg(::_pbi::ConstantInitialized) @@ -943,6 +1021,30 @@ const ::uint32_t ~0u, // no sizeof(Split) PROTOBUF_FIELD_OFFSET(::flex::BulkUpdateWorkResponse, _impl_.success_), PROTOBUF_FIELD_OFFSET(::flex::BulkUpdateWorkResponse, _impl_.message_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_._has_bits_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_UserXattrsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.key_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_._has_bits_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.key_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.value_), + 0, + 1, PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _internal_metadata_), ~0u, // no _extensions_ @@ -961,6 +1063,8 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_.stub_url_rst_id_), PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_.stub_url_path_), PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_.externalid_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_.user_xattrs_), + PROTOBUF_FIELD_OFFSET(::flex::JobLockedInfo, _impl_.remote_user_xattrs_), ~0u, ~0u, ~0u, @@ -971,6 +1075,20 @@ const ::uint32_t ~0u, ~0u, ~0u, + ~0u, + ~0u, + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_._has_bits_), + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg_MetaTagsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.key_), + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.value_), + 0, + 1, PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _internal_metadata_), ~0u, // no _extensions_ @@ -989,6 +1107,8 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.force_), PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.locked_info_), PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.update_), + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.enable_xattr_), + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.meta_tags_), ~0u, ~0u, ~0u, @@ -999,6 +1119,8 @@ const ::uint32_t ~0u, 0, 1, + 2, + ~0u, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flex::WorkRequest_Segment, _internal_metadata_), ~0u, // no _extensions_ @@ -1070,6 +1192,18 @@ const ::uint32_t ~0u, 0, 1, + PROTOBUF_FIELD_OFFSET(::flex::SyncJob_MetaTagsEntry_DoNotUse, _impl_._has_bits_), + PROTOBUF_FIELD_OFFSET(::flex::SyncJob_MetaTagsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::flex::SyncJob_MetaTagsEntry_DoNotUse, _impl_.key_), + PROTOBUF_FIELD_OFFSET(::flex::SyncJob_MetaTagsEntry_DoNotUse, _impl_.value_), + 0, + 1, PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _internal_metadata_), ~0u, // no _extensions_ @@ -1084,12 +1218,16 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_.flatten_), PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_.locked_info_), PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_.update_), + PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_.enable_xattr_), + PROTOBUF_FIELD_OFFSET(::flex::SyncJob, _impl_.meta_tags_), ~0u, ~0u, ~0u, ~0u, 0, 1, + 2, + ~0u, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flex::Work_Status, _internal_metadata_), ~0u, // no _extensions_ @@ -1253,24 +1391,28 @@ static const ::_pbi::MigrationSchema {64, 73, -1, sizeof(::flex::UpdateWorkResponse)}, {74, -1, -1, sizeof(::flex::BulkUpdateWorkRequest)}, {83, -1, -1, sizeof(::flex::BulkUpdateWorkResponse)}, - {93, 111, -1, sizeof(::flex::JobLockedInfo)}, - {121, 139, -1, sizeof(::flex::JobRequestCfg)}, - {149, -1, -1, sizeof(::flex::WorkRequest_Segment)}, - {161, 180, -1, sizeof(::flex::WorkRequest)}, - {190, 199, -1, sizeof(::flex::BuilderJob)}, - {200, 214, -1, sizeof(::flex::MockJob)}, - {220, 234, -1, sizeof(::flex::SyncJob)}, - {240, -1, -1, sizeof(::flex::Work_Status)}, - {250, -1, -1, sizeof(::flex::Work_Part)}, - {264, 278, -1, sizeof(::flex::Work)}, - {284, 294, -1, sizeof(::flex::UpdateConfigRequest)}, - {296, -1, -1, sizeof(::flex::UpdateConfigResponse)}, - {306, -1, -1, sizeof(::flex::BeeRemoteNode)}, - {323, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, - {332, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, - {346, 356, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, - {358, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, - {367, 383, -1, sizeof(::flex::RemoteStorageTarget)}, + {93, 103, -1, sizeof(::flex::JobLockedInfo_UserXattrsEntry_DoNotUse)}, + {105, 115, -1, sizeof(::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse)}, + {117, 137, -1, sizeof(::flex::JobLockedInfo)}, + {149, 159, -1, sizeof(::flex::JobRequestCfg_MetaTagsEntry_DoNotUse)}, + {161, 181, -1, sizeof(::flex::JobRequestCfg)}, + {193, -1, -1, sizeof(::flex::WorkRequest_Segment)}, + {205, 224, -1, sizeof(::flex::WorkRequest)}, + {234, 243, -1, sizeof(::flex::BuilderJob)}, + {244, 258, -1, sizeof(::flex::MockJob)}, + {264, 274, -1, sizeof(::flex::SyncJob_MetaTagsEntry_DoNotUse)}, + {276, 292, -1, sizeof(::flex::SyncJob)}, + {300, -1, -1, sizeof(::flex::Work_Status)}, + {310, -1, -1, sizeof(::flex::Work_Part)}, + {324, 338, -1, sizeof(::flex::Work)}, + {344, 354, -1, sizeof(::flex::UpdateConfigRequest)}, + {356, -1, -1, sizeof(::flex::UpdateConfigResponse)}, + {366, -1, -1, sizeof(::flex::BeeRemoteNode)}, + {383, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, + {392, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, + {406, 416, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, + {418, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, + {427, 443, -1, sizeof(::flex::RemoteStorageTarget)}, }; static const ::_pb::Message* const file_default_instances[] = { &::flex::_HeartbeatRequest_default_instance_._instance, @@ -1282,12 +1424,16 @@ static const ::_pb::Message* const file_default_instances[] = { &::flex::_UpdateWorkResponse_default_instance_._instance, &::flex::_BulkUpdateWorkRequest_default_instance_._instance, &::flex::_BulkUpdateWorkResponse_default_instance_._instance, + &::flex::_JobLockedInfo_UserXattrsEntry_DoNotUse_default_instance_._instance, + &::flex::_JobLockedInfo_RemoteUserXattrsEntry_DoNotUse_default_instance_._instance, &::flex::_JobLockedInfo_default_instance_._instance, + &::flex::_JobRequestCfg_MetaTagsEntry_DoNotUse_default_instance_._instance, &::flex::_JobRequestCfg_default_instance_._instance, &::flex::_WorkRequest_Segment_default_instance_._instance, &::flex::_WorkRequest_default_instance_._instance, &::flex::_BuilderJob_default_instance_._instance, &::flex::_MockJob_default_instance_._instance, + &::flex::_SyncJob_MetaTagsEntry_DoNotUse_default_instance_._instance, &::flex::_SyncJob_default_instance_._instance, &::flex::_Work_Status_default_instance_._instance, &::flex::_Work_Part_default_instance_._instance, @@ -1321,89 +1467,102 @@ const char descriptor_table_protodef_flex_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIA "e\030\001 \001(\0162$.flex.BulkUpdateWorkRequest.New" "State\"*\n\010NewState\022\017\n\013UNSPECIFIED\020\000\022\r\n\tUN" "CHANGED\020\001\":\n\026BulkUpdateWorkResponse\022\017\n\007s" - "uccess\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\"\214\002\n\rJobLoc" + "uccess\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\"\371\003\n\rJobLoc" "kedInfo\022\031\n\021read_write_locked\030\001 \001(\010\022\016\n\006ex" "ists\030\002 \001(\010\022\014\n\004size\030\003 \001(\003\022\014\n\004mode\030\004 \001(\r\022)" "\n\005mtime\030\005 \001(\0132\032.google.protobuf.Timestam" "p\022\023\n\013remote_size\030\006 \001(\003\0220\n\014remote_mtime\030\007" " \001(\0132\032.google.protobuf.Timestamp\022\027\n\017stub" "_url_rst_id\030\010 \001(\r\022\025\n\rstub_url_path\030\t \001(\t" - "\022\022\n\nexternalId\030\n \001(\t\"\361\001\n\rJobRequestCfg\022\033" - "\n\023remoteStorageTarget\030\001 \001(\r\022\014\n\004path\030\002 \001(" - "\t\022\022\n\nremotePath\030\003 \001(\t\022\020\n\010download\030\004 \001(\010\022" - "\022\n\nstub_local\030\005 \001(\010\022\021\n\toverwrite\030\006 \001(\010\022\017" - "\n\007flatten\030\007 \001(\010\022\r\n\005force\030\010 \001(\010\022(\n\013locked" - "_info\030\t \001(\0132\023.flex.JobLockedInfo\022\023\n\006upda" - "te\030\n \001(\010H\000\210\001\001B\t\n\007_update\"\375\002\n\013WorkRequest" - "\022\016\n\006job_id\030\001 \001(\t\022\022\n\nrequest_id\030\002 \001(\t\022\023\n\013" - "external_id\030\003 \001(\t\022\014\n\004path\030\004 \001(\t\022*\n\007segme" - "nt\030\005 \001(\0132\031.flex.WorkRequest.Segment\022\035\n\025r" - "emote_storage_target\030\006 \001(\r\022\035\n\004mock\030\n \001(\013" - "2\r.flex.MockJobH\000\022\035\n\004sync\030\013 \001(\0132\r.flex.S" - "yncJobH\000\022#\n\007builder\030\014 \001(\0132\020.flex.Builder" - "JobH\000\022\022\n\nstub_local\030\010 \001(\010\032]\n\007Segment\022\024\n\014" - "offset_start\030\001 \001(\003\022\023\n\013offset_stop\030\002 \001(\003\022" - "\023\n\013parts_start\030\003 \001(\005\022\022\n\nparts_stop\030\004 \001(\005" - "B\006\n\004Type\".\n\nBuilderJob\022 \n\003cfg\030\001 \001(\0132\023.fl" - "ex.JobRequestCfg\"\255\001\n\007MockJob\022\031\n\021num_test" - "_segments\030\001 \001(\005\022\021\n\tfile_size\030\002 \001(\003\022\023\n\013ex" - "ternal_id\030\003 \001(\t\022\023\n\013should_fail\030\004 \001(\010\022(\n\013" - "locked_info\030\006 \001(\0132\023.flex.JobLockedInfo\022 " - "\n\003cfg\030\007 \001(\0132\023.flex.JobRequestCfg\"\360\001\n\007Syn" - "cJob\022*\n\toperation\030\001 \001(\0162\027.flex.SyncJob.O" - "peration\022\021\n\toverwrite\030\002 \001(\010\022\023\n\013remote_pa" - "th\030\003 \001(\t\022\017\n\007flatten\030\005 \001(\010\022(\n\013locked_info" - "\030\006 \001(\0132\023.flex.JobLockedInfo\022\023\n\006update\030\007 " - "\001(\010H\000\210\001\001\"6\n\tOperation\022\017\n\013UNSPECIFIED\020\000\022\n" - "\n\006UPLOAD\020\001\022\014\n\010DOWNLOAD\020\002B\t\n\007_update\"\333\003\n\004" - "Work\022\014\n\004path\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t\022\022\n\nre" - "quest_id\030\003 \001(\t\022!\n\006status\030\004 \001(\0132\021.flex.Wo" - "rk.Status\022\036\n\005parts\030\005 \003(\0132\017.flex.Work.Par" - "t\022\023\n\013job_builder\030\006 \001(\010\032:\n\006Status\022\037\n\005stat" - "e\030\001 \001(\0162\020.flex.Work.State\022\017\n\007message\030\002 \001" - "(\t\032\206\001\n\004Part\022\023\n\013part_number\030\001 \001(\005\022\024\n\014offs" - "et_start\030\002 \001(\003\022\023\n\013offset_stop\030\003 \001(\003\022\022\n\ne" - "ntity_tag\030\004 \001(\t\022\027\n\017checksum_sha256\030\005 \001(\t" - "\022\021\n\tcompleted\030\006 \001(\010\"\203\001\n\005State\022\017\n\013UNSPECI" - "FIED\020\000\022\013\n\007UNKNOWN\020\001\022\013\n\007CREATED\020\002\022\r\n\tSCHE" - "DULED\020\003\022\013\n\007RUNNING\020\004\022\t\n\005ERROR\020\006\022\n\n\006FAILE" - "D\020\007\022\r\n\tCANCELLED\020\010\022\r\n\tCOMPLETED\020\t\"g\n\023Upd" - "ateConfigRequest\022\'\n\nbee_remote\030\001 \001(\0132\023.f" - "lex.BeeRemoteNode\022\'\n\004rsts\030\002 \003(\0132\031.flex.R" - "emoteStorageTarget\"\234\001\n\024UpdateConfigRespo" - "nse\0221\n\006result\030\001 \001(\0162!.flex.UpdateConfigR" - "esponse.Result\022\017\n\007message\030\002 \001(\t\"@\n\006Resul" - "t\022\017\n\013UNSPECIFIED\020\000\022\013\n\007SUCCESS\020\001\022\013\n\007PARTI" - "AL\020\002\022\013\n\007FAILURE\020\003\"\342\001\n\rBeeRemoteNode\022\n\n\002i" - "d\030\001 \001(\t\022\017\n\007address\030\002 \001(\t\022\025\n\rmgmtd_addres" - "s\030\003 \001(\t\022\026\n\016mgmtd_tls_cert\030\004 \001(\014\022&\n\036mgmtd" - "_tls_disable_verification\030\005 \001(\010\022\031\n\021mgmtd" - "_tls_disable\030\006 \001(\010\022\027\n\017mgmtd_use_proxy\030\t " - "\001(\010\022\023\n\013auth_secret\030\007 \001(\014\022\024\n\014auth_disable" - "\030\010 \001(\010\"\213\004\n\023RemoteStorageTarget\022\n\n\002id\030\001 \001" - "(\r\022\014\n\004name\030\002 \001(\t\0224\n\010policies\030\003 \001(\0132\".fle" - "x.RemoteStorageTarget.Policies\022*\n\002s3\030\004 \001" - "(\0132\034.flex.RemoteStorageTarget.S3H\000\0220\n\005po" - "six\030\005 \001(\0132\037.flex.RemoteStorageTarget.POS" - "IXH\000\0220\n\005azure\030\006 \001(\0132\037.flex.RemoteStorage" - "Target.AzureH\000\022\016\n\004mock\030\007 \001(\tH\000\032\'\n\010Polici" - "es\022\033\n\023fast_start_max_size\030\001 \001(\003\032x\n\002S3\022\024\n" - "\014endpoint_url\030\001 \001(\t\022\024\n\014partition_id\030\002 \001(" - "\t\022\016\n\006region\030\003 \001(\t\022\016\n\006bucket\030\004 \001(\t\022\022\n\nacc" - "ess_key\030\005 \001(\t\022\022\n\nsecret_key\030\006 \001(\t\032B\n\005Azu" - "re\022(\n\002s3\030\001 \001(\0132\034.flex.RemoteStorageTarge" - "t.S3\022\017\n\007account\030\002 \001(\t\032\025\n\005POSIX\022\014\n\004path\030\001" - " \001(\tB\006\n\004type2\340\002\n\nWorkerNode\022E\n\014UpdateCon" - "fig\022\031.flex.UpdateConfigRequest\032\032.flex.Up" - "dateConfigResponse\022<\n\tHeartbeat\022\026.flex.H" - "eartbeatRequest\032\027.flex.HeartbeatResponse" - "\022\?\n\nSubmitWork\022\027.flex.SubmitWorkRequest\032" - "\030.flex.SubmitWorkResponse\022\?\n\nUpdateWork\022" - "\027.flex.UpdateWorkRequest\032\030.flex.UpdateWo" - "rkResponse\022K\n\016BulkUpdateWork\022\033.flex.Bulk" - "UpdateWorkRequest\032\034.flex.BulkUpdateWorkR" - "esponseB\'Z%github.com/thinkparq/protobuf" - "/go/flexb\006proto3" + "\022\022\n\nexternalId\030\n \001(\t\0228\n\013user_xattrs\030\013 \003(" + "\0132#.flex.JobLockedInfo.UserXattrsEntry\022E" + "\n\022remote_user_xattrs\030\014 \003(\0132).flex.JobLoc" + "kedInfo.RemoteUserXattrsEntry\0321\n\017UserXat" + "trsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001" + "\0327\n\025RemoteUserXattrsEntry\022\013\n\003key\030\001 \001(\t\022\r" + "\n\005value\030\002 \001(\t:\0028\001\"\204\003\n\rJobRequestCfg\022\033\n\023r" + "emoteStorageTarget\030\001 \001(\r\022\014\n\004path\030\002 \001(\t\022\022" + "\n\nremotePath\030\003 \001(\t\022\020\n\010download\030\004 \001(\010\022\022\n\n" + "stub_local\030\005 \001(\010\022\021\n\toverwrite\030\006 \001(\010\022\017\n\007f" + "latten\030\007 \001(\010\022\r\n\005force\030\010 \001(\010\022(\n\013locked_in" + "fo\030\t \001(\0132\023.flex.JobLockedInfo\022\023\n\006update\030" + "\n \001(\010H\000\210\001\001\022\031\n\014enable_xattr\030\014 \001(\010H\001\210\001\001\0224\n" + "\tmeta_tags\030\r \003(\0132!.flex.JobRequestCfg.Me" + "taTagsEntry\032/\n\rMetaTagsEntry\022\013\n\003key\030\001 \001(" + "\t\022\r\n\005value\030\002 \001(\t:\0028\001B\t\n\007_updateB\017\n\r_enab" + "le_xattr\"\375\002\n\013WorkRequest\022\016\n\006job_id\030\001 \001(\t" + "\022\022\n\nrequest_id\030\002 \001(\t\022\023\n\013external_id\030\003 \001(" + "\t\022\014\n\004path\030\004 \001(\t\022*\n\007segment\030\005 \001(\0132\031.flex." + "WorkRequest.Segment\022\035\n\025remote_storage_ta" + "rget\030\006 \001(\r\022\035\n\004mock\030\n \001(\0132\r.flex.MockJobH" + "\000\022\035\n\004sync\030\013 \001(\0132\r.flex.SyncJobH\000\022#\n\007buil" + "der\030\014 \001(\0132\020.flex.BuilderJobH\000\022\022\n\nstub_lo" + "cal\030\010 \001(\010\032]\n\007Segment\022\024\n\014offset_start\030\001 \001" + "(\003\022\023\n\013offset_stop\030\002 \001(\003\022\023\n\013parts_start\030\003" + " \001(\005\022\022\n\nparts_stop\030\004 \001(\005B\006\n\004Type\".\n\nBuil" + "derJob\022 \n\003cfg\030\001 \001(\0132\023.flex.JobRequestCfg" + "\"\255\001\n\007MockJob\022\031\n\021num_test_segments\030\001 \001(\005\022" + "\021\n\tfile_size\030\002 \001(\003\022\023\n\013external_id\030\003 \001(\t\022" + "\023\n\013should_fail\030\004 \001(\010\022(\n\013locked_info\030\006 \001(" + "\0132\023.flex.JobLockedInfo\022 \n\003cfg\030\007 \001(\0132\023.fl" + "ex.JobRequestCfg\"\375\002\n\007SyncJob\022*\n\toperatio" + "n\030\001 \001(\0162\027.flex.SyncJob.Operation\022\021\n\tover" + "write\030\002 \001(\010\022\023\n\013remote_path\030\003 \001(\t\022\017\n\007flat" + "ten\030\005 \001(\010\022(\n\013locked_info\030\006 \001(\0132\023.flex.Jo" + "bLockedInfo\022\023\n\006update\030\007 \001(\010H\000\210\001\001\022\031\n\014enab" + "le_xattr\030\010 \001(\010H\001\210\001\001\022.\n\tmeta_tags\030\t \003(\0132\033" + ".flex.SyncJob.MetaTagsEntry\032/\n\rMetaTagsE" + "ntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"6\n\t" + "Operation\022\017\n\013UNSPECIFIED\020\000\022\n\n\006UPLOAD\020\001\022\014" + "\n\010DOWNLOAD\020\002B\t\n\007_updateB\017\n\r_enable_xattr" + "\"\333\003\n\004Work\022\014\n\004path\030\001 \001(\t\022\016\n\006job_id\030\002 \001(\t\022" + "\022\n\nrequest_id\030\003 \001(\t\022!\n\006status\030\004 \001(\0132\021.fl" + "ex.Work.Status\022\036\n\005parts\030\005 \003(\0132\017.flex.Wor" + "k.Part\022\023\n\013job_builder\030\006 \001(\010\032:\n\006Status\022\037\n" + "\005state\030\001 \001(\0162\020.flex.Work.State\022\017\n\007messag" + "e\030\002 \001(\t\032\206\001\n\004Part\022\023\n\013part_number\030\001 \001(\005\022\024\n" + "\014offset_start\030\002 \001(\003\022\023\n\013offset_stop\030\003 \001(\003" + "\022\022\n\nentity_tag\030\004 \001(\t\022\027\n\017checksum_sha256\030" + "\005 \001(\t\022\021\n\tcompleted\030\006 \001(\010\"\203\001\n\005State\022\017\n\013UN" + "SPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\013\n\007CREATED\020\002\022\r\n" + "\tSCHEDULED\020\003\022\013\n\007RUNNING\020\004\022\t\n\005ERROR\020\006\022\n\n\006" + "FAILED\020\007\022\r\n\tCANCELLED\020\010\022\r\n\tCOMPLETED\020\t\"g" + "\n\023UpdateConfigRequest\022\'\n\nbee_remote\030\001 \001(" + "\0132\023.flex.BeeRemoteNode\022\'\n\004rsts\030\002 \003(\0132\031.f" + "lex.RemoteStorageTarget\"\234\001\n\024UpdateConfig" + "Response\0221\n\006result\030\001 \001(\0162!.flex.UpdateCo" + "nfigResponse.Result\022\017\n\007message\030\002 \001(\t\"@\n\006" + "Result\022\017\n\013UNSPECIFIED\020\000\022\013\n\007SUCCESS\020\001\022\013\n\007" + "PARTIAL\020\002\022\013\n\007FAILURE\020\003\"\342\001\n\rBeeRemoteNode" + "\022\n\n\002id\030\001 \001(\t\022\017\n\007address\030\002 \001(\t\022\025\n\rmgmtd_a" + "ddress\030\003 \001(\t\022\026\n\016mgmtd_tls_cert\030\004 \001(\014\022&\n\036" + "mgmtd_tls_disable_verification\030\005 \001(\010\022\031\n\021" + "mgmtd_tls_disable\030\006 \001(\010\022\027\n\017mgmtd_use_pro" + "xy\030\t \001(\010\022\023\n\013auth_secret\030\007 \001(\014\022\024\n\014auth_di" + "sable\030\010 \001(\010\"\213\004\n\023RemoteStorageTarget\022\n\n\002i" + "d\030\001 \001(\r\022\014\n\004name\030\002 \001(\t\0224\n\010policies\030\003 \001(\0132" + "\".flex.RemoteStorageTarget.Policies\022*\n\002s" + "3\030\004 \001(\0132\034.flex.RemoteStorageTarget.S3H\000\022" + "0\n\005posix\030\005 \001(\0132\037.flex.RemoteStorageTarge" + "t.POSIXH\000\0220\n\005azure\030\006 \001(\0132\037.flex.RemoteSt" + "orageTarget.AzureH\000\022\016\n\004mock\030\007 \001(\tH\000\032\'\n\010P" + "olicies\022\033\n\023fast_start_max_size\030\001 \001(\003\032x\n\002" + "S3\022\024\n\014endpoint_url\030\001 \001(\t\022\024\n\014partition_id" + "\030\002 \001(\t\022\016\n\006region\030\003 \001(\t\022\016\n\006bucket\030\004 \001(\t\022\022" + "\n\naccess_key\030\005 \001(\t\022\022\n\nsecret_key\030\006 \001(\t\032B" + "\n\005Azure\022(\n\002s3\030\001 \001(\0132\034.flex.RemoteStorage" + "Target.S3\022\017\n\007account\030\002 \001(\t\032\025\n\005POSIX\022\014\n\004p" + "ath\030\001 \001(\tB\006\n\004type2\340\002\n\nWorkerNode\022E\n\014Upda" + "teConfig\022\031.flex.UpdateConfigRequest\032\032.fl" + "ex.UpdateConfigResponse\022<\n\tHeartbeat\022\026.f" + "lex.HeartbeatRequest\032\027.flex.HeartbeatRes" + "ponse\022\?\n\nSubmitWork\022\027.flex.SubmitWorkReq" + "uest\032\030.flex.SubmitWorkResponse\022\?\n\nUpdate" + "Work\022\027.flex.UpdateWorkRequest\032\030.flex.Upd" + "ateWorkResponse\022K\n\016BulkUpdateWork\022\033.flex" + ".BulkUpdateWorkRequest\032\034.flex.BulkUpdate" + "WorkResponseB\'Z%github.com/thinkparq/pro" + "tobuf/go/flexb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_flex_2eproto_deps[1] = { @@ -1413,13 +1572,13 @@ static ::absl::once_flag descriptor_table_flex_2eproto_once; PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_flex_2eproto = { false, false, - 4016, + 4541, descriptor_table_protodef_flex_2eproto, "flex.proto", &descriptor_table_flex_2eproto_once, descriptor_table_flex_2eproto_deps, 1, - 27, + 31, schemas, file_default_instances, TableStruct_flex_2eproto::offsets, @@ -3820,6 +3979,188 @@ ::google::protobuf::Metadata BulkUpdateWorkResponse::GetMetadata() const { } // =================================================================== +#if defined(PROTOBUF_CUSTOM_VTABLE) + JobLockedInfo_UserXattrsEntry_DoNotUse::JobLockedInfo_UserXattrsEntry_DoNotUse() : SuperType(_class_data_.base()) {} + JobLockedInfo_UserXattrsEntry_DoNotUse::JobLockedInfo_UserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena, _class_data_.base()) {} +#else // PROTOBUF_CUSTOM_VTABLE + JobLockedInfo_UserXattrsEntry_DoNotUse::JobLockedInfo_UserXattrsEntry_DoNotUse() : SuperType() {} + JobLockedInfo_UserXattrsEntry_DoNotUse::JobLockedInfo_UserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {} +#endif // PROTOBUF_CUSTOM_VTABLE + inline void* JobLockedInfo_UserXattrsEntry_DoNotUse::PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena) { + return ::new (mem) JobLockedInfo_UserXattrsEntry_DoNotUse(arena); + } + constexpr auto JobLockedInfo_UserXattrsEntry_DoNotUse::InternalNewImpl_() { + return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(JobLockedInfo_UserXattrsEntry_DoNotUse), + alignof(JobLockedInfo_UserXattrsEntry_DoNotUse)); + } + PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 + const ::google::protobuf::internal::ClassDataFull JobLockedInfo_UserXattrsEntry_DoNotUse::_class_data_ = { + ::google::protobuf::internal::ClassData{ + &_JobLockedInfo_UserXattrsEntry_DoNotUse_default_instance_._instance, + &_table_.header, + nullptr, // OnDemandRegisterArenaDtor + nullptr, // IsInitialized + &JobLockedInfo_UserXattrsEntry_DoNotUse::MergeImpl, + ::google::protobuf::Message::GetNewImpl(), + #if defined(PROTOBUF_CUSTOM_VTABLE) + &JobLockedInfo_UserXattrsEntry_DoNotUse::SharedDtor, + static_cast( + &JobLockedInfo_UserXattrsEntry_DoNotUse::ClearImpl), + ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl + , + #endif // PROTOBUF_CUSTOM_VTABLE + PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_._cached_size_), + false, + }, + &JobLockedInfo_UserXattrsEntry_DoNotUse::kDescriptorMethods, + &descriptor_table_flex_2eproto, + nullptr, // tracker + }; + const ::google::protobuf::internal::ClassData* JobLockedInfo_UserXattrsEntry_DoNotUse::GetClassData() const { + ::google::protobuf::internal::PrefetchToLocalCache(&_class_data_); + ::google::protobuf::internal::PrefetchToLocalCache(_class_data_.tc_table); + return _class_data_.base(); + } +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<1, 2, 0, 51, 2> JobLockedInfo_UserXattrsEntry_DoNotUse::_table_ = { + { + PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_._has_bits_), + 0, // no _extensions_ + 2, 8, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967292, // skipmap + offsetof(decltype(_table_), field_entries), + 2, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + _class_data_.base(), + nullptr, // post_loop_handler + ::_pbi::TcParser::DiscardEverythingFallback, // fallback + #ifdef PROTOBUF_PREFETCH_PARSE_TABLE + ::_pbi::TcParser::GetTable<::flex::JobLockedInfo_UserXattrsEntry_DoNotUse>(), // to_prefetch + #endif // PROTOBUF_PREFETCH_PARSE_TABLE + }, {{ + // string value = 2; + {::_pbi::TcParser::FastUS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.value_)}}, + // string key = 1; + {::_pbi::TcParser::FastUS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.key_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // string key = 1; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.key_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // string value = 2; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo_UserXattrsEntry_DoNotUse, _impl_.value_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + "\42\3\5\0\0\0\0\0" + "flex.JobLockedInfo.UserXattrsEntry" + "key" + "value" + }}, +}; + +// =================================================================== + +#if defined(PROTOBUF_CUSTOM_VTABLE) + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse() : SuperType(_class_data_.base()) {} + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena, _class_data_.base()) {} +#else // PROTOBUF_CUSTOM_VTABLE + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse() : SuperType() {} + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {} +#endif // PROTOBUF_CUSTOM_VTABLE + inline void* JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena) { + return ::new (mem) JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(arena); + } + constexpr auto JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::InternalNewImpl_() { + return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse), + alignof(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse)); + } + PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 + const ::google::protobuf::internal::ClassDataFull JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::_class_data_ = { + ::google::protobuf::internal::ClassData{ + &_JobLockedInfo_RemoteUserXattrsEntry_DoNotUse_default_instance_._instance, + &_table_.header, + nullptr, // OnDemandRegisterArenaDtor + nullptr, // IsInitialized + &JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::MergeImpl, + ::google::protobuf::Message::GetNewImpl(), + #if defined(PROTOBUF_CUSTOM_VTABLE) + &JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::SharedDtor, + static_cast( + &JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::ClearImpl), + ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl + , + #endif // PROTOBUF_CUSTOM_VTABLE + PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_._cached_size_), + false, + }, + &JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::kDescriptorMethods, + &descriptor_table_flex_2eproto, + nullptr, // tracker + }; + const ::google::protobuf::internal::ClassData* JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::GetClassData() const { + ::google::protobuf::internal::PrefetchToLocalCache(&_class_data_); + ::google::protobuf::internal::PrefetchToLocalCache(_class_data_.tc_table); + return _class_data_.base(); + } +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<1, 2, 0, 57, 2> JobLockedInfo_RemoteUserXattrsEntry_DoNotUse::_table_ = { + { + PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_._has_bits_), + 0, // no _extensions_ + 2, 8, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967292, // skipmap + offsetof(decltype(_table_), field_entries), + 2, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + _class_data_.base(), + nullptr, // post_loop_handler + ::_pbi::TcParser::DiscardEverythingFallback, // fallback + #ifdef PROTOBUF_PREFETCH_PARSE_TABLE + ::_pbi::TcParser::GetTable<::flex::JobLockedInfo_RemoteUserXattrsEntry_DoNotUse>(), // to_prefetch + #endif // PROTOBUF_PREFETCH_PARSE_TABLE + }, {{ + // string value = 2; + {::_pbi::TcParser::FastUS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.value_)}}, + // string key = 1; + {::_pbi::TcParser::FastUS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.key_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // string key = 1; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.key_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // string value = 2; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo_RemoteUserXattrsEntry_DoNotUse, _impl_.value_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + "\50\3\5\0\0\0\0\0" + "flex.JobLockedInfo.RemoteUserXattrsEntry" + "key" + "value" + }}, +}; + +// =================================================================== + class JobLockedInfo::_Internal { public: using HasBits = @@ -3852,6 +4193,8 @@ inline PROTOBUF_NDEBUG_INLINE JobLockedInfo::Impl_::Impl_( const Impl_& from, const ::flex::JobLockedInfo& from_msg) : _has_bits_{from._has_bits_}, _cached_size_{0}, + user_xattrs_{visibility, arena, from.user_xattrs_}, + remote_user_xattrs_{visibility, arena, from.remote_user_xattrs_}, stub_url_path_(arena, from.stub_url_path_), externalid_(arena, from.externalid_) {} @@ -3889,6 +4232,8 @@ inline PROTOBUF_NDEBUG_INLINE JobLockedInfo::Impl_::Impl_( ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena) : _cached_size_{0}, + user_xattrs_{visibility, arena}, + remote_user_xattrs_{visibility, arena}, stub_url_path_(arena), externalid_(arena) {} @@ -3921,8 +4266,32 @@ inline void* JobLockedInfo::PlacementNew_(const void*, void* mem, return ::new (mem) JobLockedInfo(arena); } constexpr auto JobLockedInfo::InternalNewImpl_() { - return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(JobLockedInfo), - alignof(JobLockedInfo)); + constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({ + PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.user_xattrs_) + + decltype(JobLockedInfo::_impl_.user_xattrs_):: + InternalGetArenaOffset( + ::google::protobuf::Message::internal_visibility()), + PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.user_xattrs_) + + decltype(JobLockedInfo::_impl_.user_xattrs_):: + InternalGetArenaOffsetAlt( + ::google::protobuf::Message::internal_visibility()), + PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.remote_user_xattrs_) + + decltype(JobLockedInfo::_impl_.remote_user_xattrs_):: + InternalGetArenaOffset( + ::google::protobuf::Message::internal_visibility()), + PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.remote_user_xattrs_) + + decltype(JobLockedInfo::_impl_.remote_user_xattrs_):: + InternalGetArenaOffsetAlt( + ::google::protobuf::Message::internal_visibility()), + }); + if (arena_bits.has_value()) { + return ::google::protobuf::internal::MessageCreator::CopyInit( + sizeof(JobLockedInfo), alignof(JobLockedInfo), *arena_bits); + } else { + return ::google::protobuf::internal::MessageCreator(&JobLockedInfo::PlacementNew_, + sizeof(JobLockedInfo), + alignof(JobLockedInfo)); + } } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 @@ -3952,16 +4321,16 @@ const ::google::protobuf::internal::ClassData* JobLockedInfo::GetClassData() con return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 10, 2, 58, 2> JobLockedInfo::_table_ = { +const ::_pbi::TcParseTable<4, 12, 4, 87, 2> JobLockedInfo::_table_ = { { PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_._has_bits_), 0, // no _extensions_ - 10, 120, // max_field_number, fast_idx_mask + 12, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294966272, // skipmap + 4294963200, // skipmap offsetof(decltype(_table_), field_entries), - 10, // num_field_entries - 2, // num_aux_entries + 12, // num_field_entries + 4, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -4039,14 +4408,30 @@ const ::_pbi::TcParseTable<4, 10, 2, 58, 2> JobLockedInfo::_table_ = { // string externalId = 10; {PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.externalid_), -1, 0, (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // map user_xattrs = 11; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.user_xattrs_), -1, 2, + (0 | ::_fl::kFcRepeated | ::_fl::kMap)}, + // map remote_user_xattrs = 12; + {PROTOBUF_FIELD_OFFSET(JobLockedInfo, _impl_.remote_user_xattrs_), -1, 3, + (0 | ::_fl::kFcRepeated | ::_fl::kMap)}, }}, {{ {::_pbi::TcParser::GetTable<::google::protobuf::Timestamp>()}, {::_pbi::TcParser::GetTable<::google::protobuf::Timestamp>()}, + {::_pbi::TcParser::GetMapAuxInfo< + decltype(JobLockedInfo()._impl_.user_xattrs_)>( + 1, 0, 0, 9, + 9)}, + {::_pbi::TcParser::GetMapAuxInfo< + decltype(JobLockedInfo()._impl_.remote_user_xattrs_)>( + 1, 0, 0, 9, + 9)}, }}, {{ - "\22\0\0\0\0\0\0\0\0\15\12\0\0\0\0\0" + "\22\0\0\0\0\0\0\0\0\15\12\13\22\0\0\0" "flex.JobLockedInfo" "stub_url_path" "externalId" + "user_xattrs" + "remote_user_xattrs" }}, }; @@ -4057,6 +4442,8 @@ PROTOBUF_NOINLINE void JobLockedInfo::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.user_xattrs_.Clear(); + _impl_.remote_user_xattrs_.Clear(); _impl_.stub_url_path_.ClearToEmpty(); _impl_.externalid_.ClearToEmpty(); cached_has_bits = _impl_._has_bits_[0]; @@ -4165,6 +4552,72 @@ PROTOBUF_NOINLINE void JobLockedInfo::Clear() { target = stream->WriteStringMaybeAliased(10, _s, target); } + // map user_xattrs = 11; + if (!this_._internal_user_xattrs().empty()) { + using MapType = ::google::protobuf::Map; + using WireHelper = _pbi::MapEntryFuncs; + const auto& field = this_._internal_user_xattrs(); + + if (stream->IsSerializationDeterministic() && field.size() > 1) { + for (const auto& entry : ::google::protobuf::internal::MapSorterPtr(field)) { + target = WireHelper::InternalSerialize( + 11, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.user_xattrs"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.user_xattrs"); + } + } else { + for (const auto& entry : field) { + target = WireHelper::InternalSerialize( + 11, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.user_xattrs"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.user_xattrs"); + } + } + } + + // map remote_user_xattrs = 12; + if (!this_._internal_remote_user_xattrs().empty()) { + using MapType = ::google::protobuf::Map; + using WireHelper = _pbi::MapEntryFuncs; + const auto& field = this_._internal_remote_user_xattrs(); + + if (stream->IsSerializationDeterministic() && field.size() > 1) { + for (const auto& entry : ::google::protobuf::internal::MapSorterPtr(field)) { + target = WireHelper::InternalSerialize( + 12, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.remote_user_xattrs"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.remote_user_xattrs"); + } + } else { + for (const auto& entry : field) { + target = WireHelper::InternalSerialize( + 12, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.remote_user_xattrs"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobLockedInfo.remote_user_xattrs"); + } + } + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -4189,6 +4642,28 @@ PROTOBUF_NOINLINE void JobLockedInfo::Clear() { (void)cached_has_bits; ::_pbi::Prefetch5LinesFrom7Lines(&this_); + { + // map user_xattrs = 11; + { + total_size += + 1 * ::google::protobuf::internal::FromIntSize(this_._internal_user_xattrs_size()); + for (const auto& entry : this_._internal_user_xattrs()) { + total_size += _pbi::MapEntryFuncs::ByteSizeLong(entry.first, entry.second); + } + } + // map remote_user_xattrs = 12; + { + total_size += + 1 * ::google::protobuf::internal::FromIntSize(this_._internal_remote_user_xattrs_size()); + for (const auto& entry : this_._internal_remote_user_xattrs()) { + total_size += _pbi::MapEntryFuncs::ByteSizeLong(entry.first, entry.second); + } + } + } { // string stub_url_path = 9; if (!this_._internal_stub_url_path().empty()) { @@ -4257,6 +4732,8 @@ void JobLockedInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::g ::uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_impl_.user_xattrs_.MergeFrom(from._impl_.user_xattrs_); + _this->_impl_.remote_user_xattrs_.MergeFrom(from._impl_.remote_user_xattrs_); if (!from._internal_stub_url_path().empty()) { _this->_internal_set_stub_url_path(from._internal_stub_url_path()); } @@ -4320,6 +4797,8 @@ void JobLockedInfo::InternalSwap(JobLockedInfo* PROTOBUF_RESTRICT other) { ABSL_DCHECK_EQ(arena, other->GetArena()); _internal_metadata_.InternalSwap(&other->_internal_metadata_); swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); + _impl_.user_xattrs_.InternalSwap(&other->_impl_.user_xattrs_); + _impl_.remote_user_xattrs_.InternalSwap(&other->_impl_.remote_user_xattrs_); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.stub_url_path_, &other->_impl_.stub_url_path_, arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.externalid_, &other->_impl_.externalid_, arena); ::google::protobuf::internal::memswap< @@ -4335,6 +4814,97 @@ ::google::protobuf::Metadata JobLockedInfo::GetMetadata() const { } // =================================================================== +#if defined(PROTOBUF_CUSTOM_VTABLE) + JobRequestCfg_MetaTagsEntry_DoNotUse::JobRequestCfg_MetaTagsEntry_DoNotUse() : SuperType(_class_data_.base()) {} + JobRequestCfg_MetaTagsEntry_DoNotUse::JobRequestCfg_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena, _class_data_.base()) {} +#else // PROTOBUF_CUSTOM_VTABLE + JobRequestCfg_MetaTagsEntry_DoNotUse::JobRequestCfg_MetaTagsEntry_DoNotUse() : SuperType() {} + JobRequestCfg_MetaTagsEntry_DoNotUse::JobRequestCfg_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {} +#endif // PROTOBUF_CUSTOM_VTABLE + inline void* JobRequestCfg_MetaTagsEntry_DoNotUse::PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena) { + return ::new (mem) JobRequestCfg_MetaTagsEntry_DoNotUse(arena); + } + constexpr auto JobRequestCfg_MetaTagsEntry_DoNotUse::InternalNewImpl_() { + return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(JobRequestCfg_MetaTagsEntry_DoNotUse), + alignof(JobRequestCfg_MetaTagsEntry_DoNotUse)); + } + PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 + const ::google::protobuf::internal::ClassDataFull JobRequestCfg_MetaTagsEntry_DoNotUse::_class_data_ = { + ::google::protobuf::internal::ClassData{ + &_JobRequestCfg_MetaTagsEntry_DoNotUse_default_instance_._instance, + &_table_.header, + nullptr, // OnDemandRegisterArenaDtor + nullptr, // IsInitialized + &JobRequestCfg_MetaTagsEntry_DoNotUse::MergeImpl, + ::google::protobuf::Message::GetNewImpl(), + #if defined(PROTOBUF_CUSTOM_VTABLE) + &JobRequestCfg_MetaTagsEntry_DoNotUse::SharedDtor, + static_cast( + &JobRequestCfg_MetaTagsEntry_DoNotUse::ClearImpl), + ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl + , + #endif // PROTOBUF_CUSTOM_VTABLE + PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_._cached_size_), + false, + }, + &JobRequestCfg_MetaTagsEntry_DoNotUse::kDescriptorMethods, + &descriptor_table_flex_2eproto, + nullptr, // tracker + }; + const ::google::protobuf::internal::ClassData* JobRequestCfg_MetaTagsEntry_DoNotUse::GetClassData() const { + ::google::protobuf::internal::PrefetchToLocalCache(&_class_data_); + ::google::protobuf::internal::PrefetchToLocalCache(_class_data_.tc_table); + return _class_data_.base(); + } +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<1, 2, 0, 49, 2> JobRequestCfg_MetaTagsEntry_DoNotUse::_table_ = { + { + PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_._has_bits_), + 0, // no _extensions_ + 2, 8, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967292, // skipmap + offsetof(decltype(_table_), field_entries), + 2, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + _class_data_.base(), + nullptr, // post_loop_handler + ::_pbi::TcParser::DiscardEverythingFallback, // fallback + #ifdef PROTOBUF_PREFETCH_PARSE_TABLE + ::_pbi::TcParser::GetTable<::flex::JobRequestCfg_MetaTagsEntry_DoNotUse>(), // to_prefetch + #endif // PROTOBUF_PREFETCH_PARSE_TABLE + }, {{ + // string value = 2; + {::_pbi::TcParser::FastUS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.value_)}}, + // string key = 1; + {::_pbi::TcParser::FastUS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.key_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // string key = 1; + {PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.key_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // string value = 2; + {PROTOBUF_FIELD_OFFSET(JobRequestCfg_MetaTagsEntry_DoNotUse, _impl_.value_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + "\40\3\5\0\0\0\0\0" + "flex.JobRequestCfg.MetaTagsEntry" + "key" + "value" + }}, +}; + +// =================================================================== + class JobRequestCfg::_Internal { public: using HasBits = @@ -4357,6 +4927,7 @@ inline PROTOBUF_NDEBUG_INLINE JobRequestCfg::Impl_::Impl_( const Impl_& from, const ::flex::JobRequestCfg& from_msg) : _has_bits_{from._has_bits_}, _cached_size_{0}, + meta_tags_{visibility, arena, from.meta_tags_}, path_(arena, from.path_), remotepath_(arena, from.remotepath_) {} @@ -4381,9 +4952,9 @@ JobRequestCfg::JobRequestCfg( offsetof(Impl_, remotestoragetarget_), reinterpret_cast(&from._impl_) + offsetof(Impl_, remotestoragetarget_), - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, remotestoragetarget_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); // @@protoc_insertion_point(copy_constructor:flex.JobRequestCfg) } @@ -4391,6 +4962,7 @@ inline PROTOBUF_NDEBUG_INLINE JobRequestCfg::Impl_::Impl_( ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena) : _cached_size_{0}, + meta_tags_{visibility, arena}, path_(arena), remotepath_(arena) {} @@ -4399,9 +4971,9 @@ inline void JobRequestCfg::SharedCtor(::_pb::Arena* arena) { ::memset(reinterpret_cast(&_impl_) + offsetof(Impl_, locked_info_), 0, - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, locked_info_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); } JobRequestCfg::~JobRequestCfg() { // @@protoc_insertion_point(destructor:flex.JobRequestCfg) @@ -4422,8 +4994,24 @@ inline void* JobRequestCfg::PlacementNew_(const void*, void* mem, return ::new (mem) JobRequestCfg(arena); } constexpr auto JobRequestCfg::InternalNewImpl_() { - return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(JobRequestCfg), - alignof(JobRequestCfg)); + constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({ + PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.meta_tags_) + + decltype(JobRequestCfg::_impl_.meta_tags_):: + InternalGetArenaOffset( + ::google::protobuf::Message::internal_visibility()), + PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.meta_tags_) + + decltype(JobRequestCfg::_impl_.meta_tags_):: + InternalGetArenaOffsetAlt( + ::google::protobuf::Message::internal_visibility()), + }); + if (arena_bits.has_value()) { + return ::google::protobuf::internal::MessageCreator::CopyInit( + sizeof(JobRequestCfg), alignof(JobRequestCfg), *arena_bits); + } else { + return ::google::protobuf::internal::MessageCreator(&JobRequestCfg::PlacementNew_, + sizeof(JobRequestCfg), + alignof(JobRequestCfg)); + } } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 @@ -4453,16 +5041,16 @@ const ::google::protobuf::internal::ClassData* JobRequestCfg::GetClassData() con return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 10, 1, 49, 2> JobRequestCfg::_table_ = { +const ::_pbi::TcParseTable<4, 12, 2, 58, 2> JobRequestCfg::_table_ = { { PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_._has_bits_), 0, // no _extensions_ - 10, 120, // max_field_number, fast_idx_mask + 13, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294966272, // skipmap + 4294960128, // skipmap offsetof(decltype(_table_), field_entries), - 10, // num_field_entries - 1, // num_aux_entries + 12, // num_field_entries + 2, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -4503,7 +5091,9 @@ const ::_pbi::TcParseTable<4, 10, 1, 49, 2> JobRequestCfg::_table_ = { {::_pbi::TcParser::SingularVarintNoZag1(), {80, 1, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_)}}, {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, + // optional bool enable_xattr = 12; + {::_pbi::TcParser::SingularVarintNoZag1(), + {96, 2, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.enable_xattr_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, @@ -4540,13 +5130,24 @@ const ::_pbi::TcParseTable<4, 10, 1, 49, 2> JobRequestCfg::_table_ = { // optional bool update = 10; {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)}, + // optional bool enable_xattr = 12; + {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.enable_xattr_), _Internal::kHasBitsOffset + 2, 0, + (0 | ::_fl::kFcOptional | ::_fl::kBool)}, + // map meta_tags = 13; + {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.meta_tags_), -1, 1, + (0 | ::_fl::kFcRepeated | ::_fl::kMap)}, }}, {{ {::_pbi::TcParser::GetTable<::flex::JobLockedInfo>()}, + {::_pbi::TcParser::GetMapAuxInfo< + decltype(JobRequestCfg()._impl_.meta_tags_)>( + 1, 0, 0, 9, + 9)}, }}, {{ - "\22\0\4\12\0\0\0\0\0\0\0\0\0\0\0\0" + "\22\0\4\12\0\0\0\0\0\0\0\0\11\0\0\0" "flex.JobRequestCfg" "path" "remotePath" + "meta_tags" }}, }; @@ -4557,6 +5158,7 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.meta_tags_.Clear(); _impl_.path_.ClearToEmpty(); _impl_.remotepath_.ClearToEmpty(); cached_has_bits = _impl_._has_bits_[0]; @@ -4567,7 +5169,11 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { ::memset(&_impl_.remotestoragetarget_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.force_) - reinterpret_cast(&_impl_.remotestoragetarget_)) + sizeof(_impl_.force_)); - _impl_.update_ = false; + if (cached_has_bits & 0x00000006u) { + ::memset(&_impl_.update_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.enable_xattr_) - + reinterpret_cast(&_impl_.update_)) + sizeof(_impl_.enable_xattr_)); + } _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -4660,6 +5266,46 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { 10, this_._internal_update(), target); } + // optional bool enable_xattr = 12; + if (cached_has_bits & 0x00000004u) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray( + 12, this_._internal_enable_xattr(), target); + } + + // map meta_tags = 13; + if (!this_._internal_meta_tags().empty()) { + using MapType = ::google::protobuf::Map; + using WireHelper = _pbi::MapEntryFuncs; + const auto& field = this_._internal_meta_tags(); + + if (stream->IsSerializationDeterministic() && field.size() > 1) { + for (const auto& entry : ::google::protobuf::internal::MapSorterPtr(field)) { + target = WireHelper::InternalSerialize( + 13, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobRequestCfg.meta_tags"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobRequestCfg.meta_tags"); + } + } else { + for (const auto& entry : field) { + target = WireHelper::InternalSerialize( + 13, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobRequestCfg.meta_tags"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.JobRequestCfg.meta_tags"); + } + } + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -4684,6 +5330,18 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { (void)cached_has_bits; ::_pbi::Prefetch5LinesFrom7Lines(&this_); + { + // map meta_tags = 13; + { + total_size += + 1 * ::google::protobuf::internal::FromIntSize(this_._internal_meta_tags_size()); + for (const auto& entry : this_._internal_meta_tags()) { + total_size += _pbi::MapEntryFuncs::ByteSizeLong(entry.first, entry.second); + } + } + } { // string path = 2; if (!this_._internal_path().empty()) { @@ -4731,11 +5389,15 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { total_size += 2; } } - { + if (cached_has_bits & 0x00000006u) { // optional bool update = 10; if (cached_has_bits & 0x00000002u) { total_size += 2; } + // optional bool enable_xattr = 12; + if (cached_has_bits & 0x00000004u) { + total_size += 2; + } } return this_.MaybeComputeUnknownFieldsSize(total_size, &this_._impl_._cached_size_); @@ -4750,6 +5412,7 @@ void JobRequestCfg::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::g ::uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_impl_.meta_tags_.MergeFrom(from._impl_.meta_tags_); if (!from._internal_path().empty()) { _this->_internal_set_path(from._internal_path()); } @@ -4784,8 +5447,13 @@ void JobRequestCfg::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::g if (from._internal_force() != 0) { _this->_impl_.force_ = from._impl_.force_; } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.update_ = from._impl_.update_; + if (cached_has_bits & 0x00000006u) { + if (cached_has_bits & 0x00000002u) { + _this->_impl_.update_ = from._impl_.update_; + } + if (cached_has_bits & 0x00000004u) { + _this->_impl_.enable_xattr_ = from._impl_.enable_xattr_; + } } _this->_impl_._has_bits_[0] |= cached_has_bits; _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); @@ -4805,11 +5473,12 @@ void JobRequestCfg::InternalSwap(JobRequestCfg* PROTOBUF_RESTRICT other) { ABSL_DCHECK_EQ(arena, other->GetArena()); _internal_metadata_.InternalSwap(&other->_internal_metadata_); swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); + _impl_.meta_tags_.InternalSwap(&other->_impl_.meta_tags_); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, &other->_impl_.path_, arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remotepath_, &other->_impl_.remotepath_, arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_) - + sizeof(JobRequestCfg::_impl_.update_) + PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.enable_xattr_) + + sizeof(JobRequestCfg::_impl_.enable_xattr_) - PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.locked_info_)>( reinterpret_cast(&_impl_.locked_info_), reinterpret_cast(&other->_impl_.locked_info_)); @@ -6396,6 +7065,97 @@ ::google::protobuf::Metadata MockJob::GetMetadata() const { } // =================================================================== +#if defined(PROTOBUF_CUSTOM_VTABLE) + SyncJob_MetaTagsEntry_DoNotUse::SyncJob_MetaTagsEntry_DoNotUse() : SuperType(_class_data_.base()) {} + SyncJob_MetaTagsEntry_DoNotUse::SyncJob_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena, _class_data_.base()) {} +#else // PROTOBUF_CUSTOM_VTABLE + SyncJob_MetaTagsEntry_DoNotUse::SyncJob_MetaTagsEntry_DoNotUse() : SuperType() {} + SyncJob_MetaTagsEntry_DoNotUse::SyncJob_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {} +#endif // PROTOBUF_CUSTOM_VTABLE + inline void* SyncJob_MetaTagsEntry_DoNotUse::PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena) { + return ::new (mem) SyncJob_MetaTagsEntry_DoNotUse(arena); + } + constexpr auto SyncJob_MetaTagsEntry_DoNotUse::InternalNewImpl_() { + return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SyncJob_MetaTagsEntry_DoNotUse), + alignof(SyncJob_MetaTagsEntry_DoNotUse)); + } + PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 + const ::google::protobuf::internal::ClassDataFull SyncJob_MetaTagsEntry_DoNotUse::_class_data_ = { + ::google::protobuf::internal::ClassData{ + &_SyncJob_MetaTagsEntry_DoNotUse_default_instance_._instance, + &_table_.header, + nullptr, // OnDemandRegisterArenaDtor + nullptr, // IsInitialized + &SyncJob_MetaTagsEntry_DoNotUse::MergeImpl, + ::google::protobuf::Message::GetNewImpl(), + #if defined(PROTOBUF_CUSTOM_VTABLE) + &SyncJob_MetaTagsEntry_DoNotUse::SharedDtor, + static_cast( + &SyncJob_MetaTagsEntry_DoNotUse::ClearImpl), + ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl + , + #endif // PROTOBUF_CUSTOM_VTABLE + PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_._cached_size_), + false, + }, + &SyncJob_MetaTagsEntry_DoNotUse::kDescriptorMethods, + &descriptor_table_flex_2eproto, + nullptr, // tracker + }; + const ::google::protobuf::internal::ClassData* SyncJob_MetaTagsEntry_DoNotUse::GetClassData() const { + ::google::protobuf::internal::PrefetchToLocalCache(&_class_data_); + ::google::protobuf::internal::PrefetchToLocalCache(_class_data_.tc_table); + return _class_data_.base(); + } +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<1, 2, 0, 43, 2> SyncJob_MetaTagsEntry_DoNotUse::_table_ = { + { + PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_._has_bits_), + 0, // no _extensions_ + 2, 8, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967292, // skipmap + offsetof(decltype(_table_), field_entries), + 2, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + _class_data_.base(), + nullptr, // post_loop_handler + ::_pbi::TcParser::DiscardEverythingFallback, // fallback + #ifdef PROTOBUF_PREFETCH_PARSE_TABLE + ::_pbi::TcParser::GetTable<::flex::SyncJob_MetaTagsEntry_DoNotUse>(), // to_prefetch + #endif // PROTOBUF_PREFETCH_PARSE_TABLE + }, {{ + // string value = 2; + {::_pbi::TcParser::FastUS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_.value_)}}, + // string key = 1; + {::_pbi::TcParser::FastUS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_.key_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // string key = 1; + {PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_.key_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // string value = 2; + {PROTOBUF_FIELD_OFFSET(SyncJob_MetaTagsEntry_DoNotUse, _impl_.value_), -1, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + "\32\3\5\0\0\0\0\0" + "flex.SyncJob.MetaTagsEntry" + "key" + "value" + }}, +}; + +// =================================================================== + class SyncJob::_Internal { public: using HasBits = @@ -6418,6 +7178,7 @@ inline PROTOBUF_NDEBUG_INLINE SyncJob::Impl_::Impl_( const Impl_& from, const ::flex::SyncJob& from_msg) : _has_bits_{from._has_bits_}, _cached_size_{0}, + meta_tags_{visibility, arena, from.meta_tags_}, remote_path_(arena, from.remote_path_) {} SyncJob::SyncJob( @@ -6441,9 +7202,9 @@ SyncJob::SyncJob( offsetof(Impl_, operation_), reinterpret_cast(&from._impl_) + offsetof(Impl_, operation_), - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, operation_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); // @@protoc_insertion_point(copy_constructor:flex.SyncJob) } @@ -6451,6 +7212,7 @@ inline PROTOBUF_NDEBUG_INLINE SyncJob::Impl_::Impl_( ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena) : _cached_size_{0}, + meta_tags_{visibility, arena}, remote_path_(arena) {} inline void SyncJob::SharedCtor(::_pb::Arena* arena) { @@ -6458,9 +7220,9 @@ inline void SyncJob::SharedCtor(::_pb::Arena* arena) { ::memset(reinterpret_cast(&_impl_) + offsetof(Impl_, locked_info_), 0, - offsetof(Impl_, update_) - + offsetof(Impl_, enable_xattr_) - offsetof(Impl_, locked_info_) + - sizeof(Impl_::update_)); + sizeof(Impl_::enable_xattr_)); } SyncJob::~SyncJob() { // @@protoc_insertion_point(destructor:flex.SyncJob) @@ -6480,8 +7242,24 @@ inline void* SyncJob::PlacementNew_(const void*, void* mem, return ::new (mem) SyncJob(arena); } constexpr auto SyncJob::InternalNewImpl_() { - return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SyncJob), - alignof(SyncJob)); + constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({ + PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.meta_tags_) + + decltype(SyncJob::_impl_.meta_tags_):: + InternalGetArenaOffset( + ::google::protobuf::Message::internal_visibility()), + PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.meta_tags_) + + decltype(SyncJob::_impl_.meta_tags_):: + InternalGetArenaOffsetAlt( + ::google::protobuf::Message::internal_visibility()), + }); + if (arena_bits.has_value()) { + return ::google::protobuf::internal::MessageCreator::CopyInit( + sizeof(SyncJob), alignof(SyncJob), *arena_bits); + } else { + return ::google::protobuf::internal::MessageCreator(&SyncJob::PlacementNew_, + sizeof(SyncJob), + alignof(SyncJob)); + } } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 @@ -6511,16 +7289,16 @@ const ::google::protobuf::internal::ClassData* SyncJob::GetClassData() const { return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<3, 6, 1, 32, 2> SyncJob::_table_ = { +const ::_pbi::TcParseTable<3, 8, 2, 49, 2> SyncJob::_table_ = { { PROTOBUF_FIELD_OFFSET(SyncJob, _impl_._has_bits_), 0, // no _extensions_ - 7, 56, // max_field_number, fast_idx_mask + 9, 56, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294967176, // skipmap + 4294966792, // skipmap offsetof(decltype(_table_), field_entries), - 6, // num_field_entries - 1, // num_aux_entries + 8, // num_field_entries + 2, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -6529,7 +7307,9 @@ const ::_pbi::TcParseTable<3, 6, 1, 32, 2> SyncJob::_table_ = { ::_pbi::TcParser::GetTable<::flex::SyncJob>(), // to_prefetch #endif // PROTOBUF_PREFETCH_PARSE_TABLE }, {{ - {::_pbi::TcParser::MiniParse, {}}, + // optional bool enable_xattr = 8; + {::_pbi::TcParser::SingularVarintNoZag1(), + {64, 2, 0, PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.enable_xattr_)}}, // .flex.SyncJob.Operation operation = 1; {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SyncJob, _impl_.operation_), 63>(), {8, 63, 0, PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.operation_)}}, @@ -6570,12 +7350,23 @@ const ::_pbi::TcParseTable<3, 6, 1, 32, 2> SyncJob::_table_ = { // optional bool update = 7; {PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.update_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)}, + // optional bool enable_xattr = 8; + {PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.enable_xattr_), _Internal::kHasBitsOffset + 2, 0, + (0 | ::_fl::kFcOptional | ::_fl::kBool)}, + // map meta_tags = 9; + {PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.meta_tags_), -1, 1, + (0 | ::_fl::kFcRepeated | ::_fl::kMap)}, }}, {{ {::_pbi::TcParser::GetTable<::flex::JobLockedInfo>()}, + {::_pbi::TcParser::GetMapAuxInfo< + decltype(SyncJob()._impl_.meta_tags_)>( + 1, 0, 0, 9, + 9)}, }}, {{ - "\14\0\0\13\0\0\0\0" + "\14\0\0\13\0\0\0\0\11\0\0\0\0\0\0\0" "flex.SyncJob" "remote_path" + "meta_tags" }}, }; @@ -6586,6 +7377,7 @@ PROTOBUF_NOINLINE void SyncJob::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.meta_tags_.Clear(); _impl_.remote_path_.ClearToEmpty(); cached_has_bits = _impl_._has_bits_[0]; if (cached_has_bits & 0x00000001u) { @@ -6595,7 +7387,11 @@ PROTOBUF_NOINLINE void SyncJob::Clear() { ::memset(&_impl_.operation_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.flatten_) - reinterpret_cast(&_impl_.operation_)) + sizeof(_impl_.flatten_)); - _impl_.update_ = false; + if (cached_has_bits & 0x00000006u) { + ::memset(&_impl_.update_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.enable_xattr_) - + reinterpret_cast(&_impl_.update_)) + sizeof(_impl_.enable_xattr_)); + } _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -6659,6 +7455,46 @@ PROTOBUF_NOINLINE void SyncJob::Clear() { 7, this_._internal_update(), target); } + // optional bool enable_xattr = 8; + if (cached_has_bits & 0x00000004u) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray( + 8, this_._internal_enable_xattr(), target); + } + + // map meta_tags = 9; + if (!this_._internal_meta_tags().empty()) { + using MapType = ::google::protobuf::Map; + using WireHelper = _pbi::MapEntryFuncs; + const auto& field = this_._internal_meta_tags(); + + if (stream->IsSerializationDeterministic() && field.size() > 1) { + for (const auto& entry : ::google::protobuf::internal::MapSorterPtr(field)) { + target = WireHelper::InternalSerialize( + 9, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.SyncJob.meta_tags"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.SyncJob.meta_tags"); + } + } else { + for (const auto& entry : field) { + target = WireHelper::InternalSerialize( + 9, entry.first, entry.second, target, stream); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.first.data(), static_cast(entry.first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.SyncJob.meta_tags"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + entry.second.data(), static_cast(entry.second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, "flex.SyncJob.meta_tags"); + } + } + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -6683,6 +7519,18 @@ PROTOBUF_NOINLINE void SyncJob::Clear() { (void)cached_has_bits; ::_pbi::Prefetch5LinesFrom7Lines(&this_); + { + // map meta_tags = 9; + { + total_size += + 1 * ::google::protobuf::internal::FromIntSize(this_._internal_meta_tags_size()); + for (const auto& entry : this_._internal_meta_tags()) { + total_size += _pbi::MapEntryFuncs::ByteSizeLong(entry.first, entry.second); + } + } + } { // string remote_path = 3; if (!this_._internal_remote_path().empty()) { @@ -6713,11 +7561,15 @@ PROTOBUF_NOINLINE void SyncJob::Clear() { total_size += 2; } } - { + if (cached_has_bits & 0x00000006u) { // optional bool update = 7; if (cached_has_bits & 0x00000002u) { total_size += 2; } + // optional bool enable_xattr = 8; + if (cached_has_bits & 0x00000004u) { + total_size += 2; + } } return this_.MaybeComputeUnknownFieldsSize(total_size, &this_._impl_._cached_size_); @@ -6732,6 +7584,7 @@ void SyncJob::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google: ::uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_impl_.meta_tags_.MergeFrom(from._impl_.meta_tags_); if (!from._internal_remote_path().empty()) { _this->_internal_set_remote_path(from._internal_remote_path()); } @@ -6754,8 +7607,13 @@ void SyncJob::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google: if (from._internal_flatten() != 0) { _this->_impl_.flatten_ = from._impl_.flatten_; } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.update_ = from._impl_.update_; + if (cached_has_bits & 0x00000006u) { + if (cached_has_bits & 0x00000002u) { + _this->_impl_.update_ = from._impl_.update_; + } + if (cached_has_bits & 0x00000004u) { + _this->_impl_.enable_xattr_ = from._impl_.enable_xattr_; + } } _this->_impl_._has_bits_[0] |= cached_has_bits; _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); @@ -6775,10 +7633,11 @@ void SyncJob::InternalSwap(SyncJob* PROTOBUF_RESTRICT other) { ABSL_DCHECK_EQ(arena, other->GetArena()); _internal_metadata_.InternalSwap(&other->_internal_metadata_); swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); + _impl_.meta_tags_.InternalSwap(&other->_impl_.meta_tags_); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remote_path_, &other->_impl_.remote_path_, arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.update_) - + sizeof(SyncJob::_impl_.update_) + PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.enable_xattr_) + + sizeof(SyncJob::_impl_.enable_xattr_) - PROTOBUF_FIELD_OFFSET(SyncJob, _impl_.locked_info_)>( reinterpret_cast(&_impl_.locked_info_), reinterpret_cast(&other->_impl_.locked_info_)); diff --git a/cpp/flex.pb.h b/cpp/flex.pb.h index 4dd41ba..c3b96a1 100644 --- a/cpp/flex.pb.h +++ b/cpp/flex.pb.h @@ -28,6 +28,9 @@ #include "google/protobuf/message_lite.h" #include "google/protobuf/repeated_field.h" // IWYU pragma: export #include "google/protobuf/extension_set.h" // IWYU pragma: export +#include "google/protobuf/map.h" // IWYU pragma: export +#include "google/protobuf/map_entry.h" +#include "google/protobuf/map_field_inl.h" #include "google/protobuf/generated_enum_reflection.h" #include "google/protobuf/unknown_field_set.h" #include "google/protobuf/timestamp.pb.h" @@ -75,9 +78,18 @@ extern HeartbeatResponseDefaultTypeInternal _HeartbeatResponse_default_instance_ class JobLockedInfo; struct JobLockedInfoDefaultTypeInternal; extern JobLockedInfoDefaultTypeInternal _JobLockedInfo_default_instance_; +class JobLockedInfo_RemoteUserXattrsEntry_DoNotUse; +struct JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal; +extern JobLockedInfo_RemoteUserXattrsEntry_DoNotUseDefaultTypeInternal _JobLockedInfo_RemoteUserXattrsEntry_DoNotUse_default_instance_; +class JobLockedInfo_UserXattrsEntry_DoNotUse; +struct JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal; +extern JobLockedInfo_UserXattrsEntry_DoNotUseDefaultTypeInternal _JobLockedInfo_UserXattrsEntry_DoNotUse_default_instance_; class JobRequestCfg; struct JobRequestCfgDefaultTypeInternal; extern JobRequestCfgDefaultTypeInternal _JobRequestCfg_default_instance_; +class JobRequestCfg_MetaTagsEntry_DoNotUse; +struct JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal; +extern JobRequestCfg_MetaTagsEntry_DoNotUseDefaultTypeInternal _JobRequestCfg_MetaTagsEntry_DoNotUse_default_instance_; class MockJob; struct MockJobDefaultTypeInternal; extern MockJobDefaultTypeInternal _MockJob_default_instance_; @@ -108,6 +120,9 @@ extern SubmitWorkResponseDefaultTypeInternal _SubmitWorkResponse_default_instanc class SyncJob; struct SyncJobDefaultTypeInternal; extern SyncJobDefaultTypeInternal _SyncJob_default_instance_; +class SyncJob_MetaTagsEntry_DoNotUse; +struct SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal; +extern SyncJob_MetaTagsEntry_DoNotUseDefaultTypeInternal _SyncJob_MetaTagsEntry_DoNotUse_default_instance_; class UpdateConfigRequest; struct UpdateConfigRequestDefaultTypeInternal; extern UpdateConfigRequestDefaultTypeInternal _UpdateConfigRequest_default_instance_; @@ -382,7 +397,7 @@ class WorkRequest_Segment final : public ::google::protobuf::Message return reinterpret_cast( &_WorkRequest_Segment_default_instance_); } - static constexpr int kIndexInFileMessages = 11; + static constexpr int kIndexInFileMessages = 14; friend void swap(WorkRequest_Segment& a, WorkRequest_Segment& b) { a.Swap(&b); } inline void Swap(WorkRequest_Segment* other) { if (other == this) return; @@ -608,7 +623,7 @@ class Work_Status final : public ::google::protobuf::Message return reinterpret_cast( &_Work_Status_default_instance_); } - static constexpr int kIndexInFileMessages = 16; + static constexpr int kIndexInFileMessages = 20; friend void swap(Work_Status& a, Work_Status& b) { a.Swap(&b); } inline void Swap(Work_Status* other) { if (other == this) return; @@ -816,7 +831,7 @@ class Work_Part final : public ::google::protobuf::Message return reinterpret_cast( &_Work_Part_default_instance_); } - static constexpr int kIndexInFileMessages = 17; + static constexpr int kIndexInFileMessages = 21; friend void swap(Work_Part& a, Work_Part& b) { a.Swap(&b); } inline void Swap(Work_Part* other) { if (other == this) return; @@ -1323,7 +1338,7 @@ class UpdateConfigResponse final : public ::google::protobuf::Message return reinterpret_cast( &_UpdateConfigResponse_default_instance_); } - static constexpr int kIndexInFileMessages = 20; + static constexpr int kIndexInFileMessages = 24; friend void swap(UpdateConfigResponse& a, UpdateConfigResponse& b) { a.Swap(&b); } inline void Swap(UpdateConfigResponse* other) { if (other == this) return; @@ -1493,6 +1508,45 @@ class UpdateConfigResponse final : public ::google::protobuf::Message }; // ------------------------------------------------------------------- +class SyncJob_MetaTagsEntry_DoNotUse final + : public ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING> { + public: + using SuperType = ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING>; + SyncJob_MetaTagsEntry_DoNotUse(); + template + explicit PROTOBUF_CONSTEXPR SyncJob_MetaTagsEntry_DoNotUse( + ::google::protobuf::internal::ConstantInitialized); + explicit SyncJob_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena); + static const SyncJob_MetaTagsEntry_DoNotUse* internal_default_instance() { + return reinterpret_cast( + &_SyncJob_MetaTagsEntry_DoNotUse_default_instance_); + } + + + private: + friend class ::google::protobuf::MessageLite; + friend struct ::TableStruct_flex_2eproto; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable< + 1, 2, 0, + 43, 2> + _table_; + + const ::google::protobuf::internal::ClassData* GetClassData() const PROTOBUF_FINAL; + static void* PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena); + static constexpr auto InternalNewImpl_(); + static const ::google::protobuf::internal::ClassDataFull _class_data_; +}; +// ------------------------------------------------------------------- + class RemoteStorageTarget_S3 final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flex.RemoteStorageTarget.S3) */ { public: @@ -1552,7 +1606,7 @@ class RemoteStorageTarget_S3 final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_S3_default_instance_); } - static constexpr int kIndexInFileMessages = 23; + static constexpr int kIndexInFileMessages = 27; friend void swap(RemoteStorageTarget_S3& a, RemoteStorageTarget_S3& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget_S3* other) { if (other == this) return; @@ -1838,7 +1892,7 @@ class RemoteStorageTarget_Policies final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_Policies_default_instance_); } - static constexpr int kIndexInFileMessages = 22; + static constexpr int kIndexInFileMessages = 26; friend void swap(RemoteStorageTarget_Policies& a, RemoteStorageTarget_Policies& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget_Policies* other) { if (other == this) return; @@ -2028,7 +2082,7 @@ class RemoteStorageTarget_POSIX final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_POSIX_default_instance_); } - static constexpr int kIndexInFileMessages = 25; + static constexpr int kIndexInFileMessages = 29; friend void swap(RemoteStorageTarget_POSIX& a, RemoteStorageTarget_POSIX& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget_POSIX* other) { if (other == this) return; @@ -2165,6 +2219,123 @@ class RemoteStorageTarget_POSIX final : public ::google::protobuf::Message }; // ------------------------------------------------------------------- +class JobRequestCfg_MetaTagsEntry_DoNotUse final + : public ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING> { + public: + using SuperType = ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING>; + JobRequestCfg_MetaTagsEntry_DoNotUse(); + template + explicit PROTOBUF_CONSTEXPR JobRequestCfg_MetaTagsEntry_DoNotUse( + ::google::protobuf::internal::ConstantInitialized); + explicit JobRequestCfg_MetaTagsEntry_DoNotUse(::google::protobuf::Arena* arena); + static const JobRequestCfg_MetaTagsEntry_DoNotUse* internal_default_instance() { + return reinterpret_cast( + &_JobRequestCfg_MetaTagsEntry_DoNotUse_default_instance_); + } + + + private: + friend class ::google::protobuf::MessageLite; + friend struct ::TableStruct_flex_2eproto; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable< + 1, 2, 0, + 49, 2> + _table_; + + const ::google::protobuf::internal::ClassData* GetClassData() const PROTOBUF_FINAL; + static void* PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena); + static constexpr auto InternalNewImpl_(); + static const ::google::protobuf::internal::ClassDataFull _class_data_; +}; +// ------------------------------------------------------------------- + +class JobLockedInfo_UserXattrsEntry_DoNotUse final + : public ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING> { + public: + using SuperType = ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING>; + JobLockedInfo_UserXattrsEntry_DoNotUse(); + template + explicit PROTOBUF_CONSTEXPR JobLockedInfo_UserXattrsEntry_DoNotUse( + ::google::protobuf::internal::ConstantInitialized); + explicit JobLockedInfo_UserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena); + static const JobLockedInfo_UserXattrsEntry_DoNotUse* internal_default_instance() { + return reinterpret_cast( + &_JobLockedInfo_UserXattrsEntry_DoNotUse_default_instance_); + } + + + private: + friend class ::google::protobuf::MessageLite; + friend struct ::TableStruct_flex_2eproto; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable< + 1, 2, 0, + 51, 2> + _table_; + + const ::google::protobuf::internal::ClassData* GetClassData() const PROTOBUF_FINAL; + static void* PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena); + static constexpr auto InternalNewImpl_(); + static const ::google::protobuf::internal::ClassDataFull _class_data_; +}; +// ------------------------------------------------------------------- + +class JobLockedInfo_RemoteUserXattrsEntry_DoNotUse final + : public ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING> { + public: + using SuperType = ::google::protobuf::internal::MapEntry< + std::string, std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING>; + JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(); + template + explicit PROTOBUF_CONSTEXPR JobLockedInfo_RemoteUserXattrsEntry_DoNotUse( + ::google::protobuf::internal::ConstantInitialized); + explicit JobLockedInfo_RemoteUserXattrsEntry_DoNotUse(::google::protobuf::Arena* arena); + static const JobLockedInfo_RemoteUserXattrsEntry_DoNotUse* internal_default_instance() { + return reinterpret_cast( + &_JobLockedInfo_RemoteUserXattrsEntry_DoNotUse_default_instance_); + } + + + private: + friend class ::google::protobuf::MessageLite; + friend struct ::TableStruct_flex_2eproto; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable< + 1, 2, 0, + 57, 2> + _table_; + + const ::google::protobuf::internal::ClassData* GetClassData() const PROTOBUF_FINAL; + static void* PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena); + static constexpr auto InternalNewImpl_(); + static const ::google::protobuf::internal::ClassDataFull _class_data_; +}; +// ------------------------------------------------------------------- + class HeartbeatRequest final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flex.HeartbeatRequest) */ { public: @@ -2831,7 +3002,7 @@ class BeeRemoteNode final : public ::google::protobuf::Message return reinterpret_cast( &_BeeRemoteNode_default_instance_); } - static constexpr int kIndexInFileMessages = 21; + static constexpr int kIndexInFileMessages = 25; friend void swap(BeeRemoteNode& a, BeeRemoteNode& b) { a.Swap(&b); } inline void Swap(BeeRemoteNode* other) { if (other == this) return; @@ -3147,7 +3318,7 @@ class Work final : public ::google::protobuf::Message return reinterpret_cast( &_Work_default_instance_); } - static constexpr int kIndexInFileMessages = 18; + static constexpr int kIndexInFileMessages = 22; friend void swap(Work& a, Work& b) { a.Swap(&b); } inline void Swap(Work* other) { if (other == this) return; @@ -3456,7 +3627,7 @@ class RemoteStorageTarget_Azure final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_Azure_default_instance_); } - static constexpr int kIndexInFileMessages = 24; + static constexpr int kIndexInFileMessages = 28; friend void swap(RemoteStorageTarget_Azure& a, RemoteStorageTarget_Azure& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget_Azure* other) { if (other == this) return; @@ -3878,7 +4049,7 @@ class JobLockedInfo final : public ::google::protobuf::Message return reinterpret_cast( &_JobLockedInfo_default_instance_); } - static constexpr int kIndexInFileMessages = 9; + static constexpr int kIndexInFileMessages = 11; friend void swap(JobLockedInfo& a, JobLockedInfo& b) { a.Swap(&b); } inline void Swap(JobLockedInfo* other) { if (other == this) return; @@ -3965,6 +4136,8 @@ class JobLockedInfo final : public ::google::protobuf::Message // accessors ------------------------------------------------------- enum : int { + kUserXattrsFieldNumber = 11, + kRemoteUserXattrsFieldNumber = 12, kStubUrlPathFieldNumber = 9, kExternalIdFieldNumber = 10, kMtimeFieldNumber = 5, @@ -3976,6 +4149,36 @@ class JobLockedInfo final : public ::google::protobuf::Message kRemoteSizeFieldNumber = 6, kStubUrlRstIdFieldNumber = 8, }; + // map user_xattrs = 11; + int user_xattrs_size() const; + private: + int _internal_user_xattrs_size() const; + + public: + void clear_user_xattrs() ; + const ::google::protobuf::Map& user_xattrs() const; + ::google::protobuf::Map* mutable_user_xattrs(); + + private: + const ::google::protobuf::Map& _internal_user_xattrs() const; + ::google::protobuf::Map* _internal_mutable_user_xattrs(); + + public: + // map remote_user_xattrs = 12; + int remote_user_xattrs_size() const; + private: + int _internal_remote_user_xattrs_size() const; + + public: + void clear_remote_user_xattrs() ; + const ::google::protobuf::Map& remote_user_xattrs() const; + ::google::protobuf::Map* mutable_remote_user_xattrs(); + + private: + const ::google::protobuf::Map& _internal_remote_user_xattrs() const; + ::google::protobuf::Map* _internal_mutable_remote_user_xattrs(); + + public: // string stub_url_path = 9; void clear_stub_url_path() ; const std::string& stub_url_path() const; @@ -4103,8 +4306,8 @@ class JobLockedInfo final : public ::google::protobuf::Message class _Internal; friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 4, 10, 2, - 58, 2> + 4, 12, 4, + 87, 2> _table_; friend class ::google::protobuf::MessageLite; @@ -4123,6 +4326,14 @@ class JobLockedInfo final : public ::google::protobuf::Message const JobLockedInfo& from_msg); ::google::protobuf::internal::HasBits<1> _has_bits_; ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::internal::MapField + user_xattrs_; + ::google::protobuf::internal::MapField + remote_user_xattrs_; ::google::protobuf::internal::ArenaStringPtr stub_url_path_; ::google::protobuf::internal::ArenaStringPtr externalid_; ::google::protobuf::Timestamp* mtime_; @@ -4395,7 +4606,7 @@ class SyncJob final : public ::google::protobuf::Message return reinterpret_cast( &_SyncJob_default_instance_); } - static constexpr int kIndexInFileMessages = 15; + static constexpr int kIndexInFileMessages = 19; friend void swap(SyncJob& a, SyncJob& b) { a.Swap(&b); } inline void Swap(SyncJob* other) { if (other == this) return; @@ -4502,13 +4713,30 @@ class SyncJob final : public ::google::protobuf::Message // accessors ------------------------------------------------------- enum : int { + kMetaTagsFieldNumber = 9, kRemotePathFieldNumber = 3, kLockedInfoFieldNumber = 6, kOperationFieldNumber = 1, kOverwriteFieldNumber = 2, kFlattenFieldNumber = 5, kUpdateFieldNumber = 7, + kEnableXattrFieldNumber = 8, }; + // map meta_tags = 9; + int meta_tags_size() const; + private: + int _internal_meta_tags_size() const; + + public: + void clear_meta_tags() ; + const ::google::protobuf::Map& meta_tags() const; + ::google::protobuf::Map* mutable_meta_tags(); + + private: + const ::google::protobuf::Map& _internal_meta_tags() const; + ::google::protobuf::Map* _internal_mutable_meta_tags(); + + public: // string remote_path = 3; void clear_remote_path() ; const std::string& remote_path() const; @@ -4580,14 +4808,25 @@ class SyncJob final : public ::google::protobuf::Message bool _internal_update() const; void _internal_set_update(bool value); + public: + // optional bool enable_xattr = 8; + bool has_enable_xattr() const; + void clear_enable_xattr() ; + bool enable_xattr() const; + void set_enable_xattr(bool value); + + private: + bool _internal_enable_xattr() const; + void _internal_set_enable_xattr(bool value); + public: // @@protoc_insertion_point(class_scope:flex.SyncJob) private: class _Internal; friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 3, 6, 1, - 32, 2> + 3, 8, 2, + 49, 2> _table_; friend class ::google::protobuf::MessageLite; @@ -4606,12 +4845,17 @@ class SyncJob final : public ::google::protobuf::Message const SyncJob& from_msg); ::google::protobuf::internal::HasBits<1> _has_bits_; ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::internal::MapField + meta_tags_; ::google::protobuf::internal::ArenaStringPtr remote_path_; ::flex::JobLockedInfo* locked_info_; int operation_; bool overwrite_; bool flatten_; bool update_; + bool enable_xattr_; PROTOBUF_TSAN_DECLARE_MEMBER }; union { Impl_ _impl_; }; @@ -4881,7 +5125,7 @@ class RemoteStorageTarget final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_default_instance_); } - static constexpr int kIndexInFileMessages = 26; + static constexpr int kIndexInFileMessages = 30; friend void swap(RemoteStorageTarget& a, RemoteStorageTarget& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget* other) { if (other == this) return; @@ -5206,7 +5450,7 @@ class JobRequestCfg final : public ::google::protobuf::Message return reinterpret_cast( &_JobRequestCfg_default_instance_); } - static constexpr int kIndexInFileMessages = 10; + static constexpr int kIndexInFileMessages = 13; friend void swap(JobRequestCfg& a, JobRequestCfg& b) { a.Swap(&b); } inline void Swap(JobRequestCfg* other) { if (other == this) return; @@ -5293,6 +5537,7 @@ class JobRequestCfg final : public ::google::protobuf::Message // accessors ------------------------------------------------------- enum : int { + kMetaTagsFieldNumber = 13, kPathFieldNumber = 2, kRemotePathFieldNumber = 3, kLockedInfoFieldNumber = 9, @@ -5303,7 +5548,23 @@ class JobRequestCfg final : public ::google::protobuf::Message kFlattenFieldNumber = 7, kForceFieldNumber = 8, kUpdateFieldNumber = 10, + kEnableXattrFieldNumber = 12, }; + // map meta_tags = 13; + int meta_tags_size() const; + private: + int _internal_meta_tags_size() const; + + public: + void clear_meta_tags() ; + const ::google::protobuf::Map& meta_tags() const; + ::google::protobuf::Map* mutable_meta_tags(); + + private: + const ::google::protobuf::Map& _internal_meta_tags() const; + ::google::protobuf::Map* _internal_mutable_meta_tags(); + + public: // string path = 2; void clear_path() ; const std::string& path() const; @@ -5421,14 +5682,25 @@ class JobRequestCfg final : public ::google::protobuf::Message bool _internal_update() const; void _internal_set_update(bool value); + public: + // optional bool enable_xattr = 12; + bool has_enable_xattr() const; + void clear_enable_xattr() ; + bool enable_xattr() const; + void set_enable_xattr(bool value); + + private: + bool _internal_enable_xattr() const; + void _internal_set_enable_xattr(bool value); + public: // @@protoc_insertion_point(class_scope:flex.JobRequestCfg) private: class _Internal; friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 4, 10, 1, - 49, 2> + 4, 12, 2, + 58, 2> _table_; friend class ::google::protobuf::MessageLite; @@ -5447,6 +5719,10 @@ class JobRequestCfg final : public ::google::protobuf::Message const JobRequestCfg& from_msg); ::google::protobuf::internal::HasBits<1> _has_bits_; ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::internal::MapField + meta_tags_; ::google::protobuf::internal::ArenaStringPtr path_; ::google::protobuf::internal::ArenaStringPtr remotepath_; ::flex::JobLockedInfo* locked_info_; @@ -5457,6 +5733,7 @@ class JobRequestCfg final : public ::google::protobuf::Message bool flatten_; bool force_; bool update_; + bool enable_xattr_; PROTOBUF_TSAN_DECLARE_MEMBER }; union { Impl_ _impl_; }; @@ -5731,7 +6008,7 @@ class UpdateConfigRequest final : public ::google::protobuf::Message return reinterpret_cast( &_UpdateConfigRequest_default_instance_); } - static constexpr int kIndexInFileMessages = 19; + static constexpr int kIndexInFileMessages = 23; friend void swap(UpdateConfigRequest& a, UpdateConfigRequest& b) { a.Swap(&b); } inline void Swap(UpdateConfigRequest* other) { if (other == this) return; @@ -5946,7 +6223,7 @@ class MockJob final : public ::google::protobuf::Message return reinterpret_cast( &_MockJob_default_instance_); } - static constexpr int kIndexInFileMessages = 14; + static constexpr int kIndexInFileMessages = 17; friend void swap(MockJob& a, MockJob& b) { a.Swap(&b); } inline void Swap(MockJob* other) { if (other == this) return; @@ -6213,7 +6490,7 @@ class BuilderJob final : public ::google::protobuf::Message return reinterpret_cast( &_BuilderJob_default_instance_); } - static constexpr int kIndexInFileMessages = 13; + static constexpr int kIndexInFileMessages = 16; friend void swap(BuilderJob& a, BuilderJob& b) { a.Swap(&b); } inline void Swap(BuilderJob* other) { if (other == this) return; @@ -6415,7 +6692,7 @@ class WorkRequest final : public ::google::protobuf::Message return reinterpret_cast( &_WorkRequest_default_instance_); } - static constexpr int kIndexInFileMessages = 12; + static constexpr int kIndexInFileMessages = 15; friend void swap(WorkRequest& a, WorkRequest& b) { a.Swap(&b); } inline void Swap(WorkRequest* other) { if (other == this) return; @@ -7720,6 +7997,10 @@ inline void BulkUpdateWorkResponse::set_allocated_message(std::string* value) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // JobLockedInfo // bool read_write_locked = 1; @@ -8132,6 +8413,64 @@ inline void JobLockedInfo::set_allocated_externalid(std::string* value) { // @@protoc_insertion_point(field_set_allocated:flex.JobLockedInfo.externalId) } +// map user_xattrs = 11; +inline int JobLockedInfo::_internal_user_xattrs_size() const { + return _internal_user_xattrs().size(); +} +inline int JobLockedInfo::user_xattrs_size() const { + return _internal_user_xattrs_size(); +} +inline void JobLockedInfo::clear_user_xattrs() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.user_xattrs_.Clear(); +} +inline const ::google::protobuf::Map& JobLockedInfo::_internal_user_xattrs() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.user_xattrs_.GetMap(); +} +inline const ::google::protobuf::Map& JobLockedInfo::user_xattrs() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_map:flex.JobLockedInfo.user_xattrs) + return _internal_user_xattrs(); +} +inline ::google::protobuf::Map* JobLockedInfo::_internal_mutable_user_xattrs() { + ::google::protobuf::internal::TSanWrite(&_impl_); + return _impl_.user_xattrs_.MutableMap(); +} +inline ::google::protobuf::Map* JobLockedInfo::mutable_user_xattrs() ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_mutable_map:flex.JobLockedInfo.user_xattrs) + return _internal_mutable_user_xattrs(); +} + +// map remote_user_xattrs = 12; +inline int JobLockedInfo::_internal_remote_user_xattrs_size() const { + return _internal_remote_user_xattrs().size(); +} +inline int JobLockedInfo::remote_user_xattrs_size() const { + return _internal_remote_user_xattrs_size(); +} +inline void JobLockedInfo::clear_remote_user_xattrs() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.remote_user_xattrs_.Clear(); +} +inline const ::google::protobuf::Map& JobLockedInfo::_internal_remote_user_xattrs() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.remote_user_xattrs_.GetMap(); +} +inline const ::google::protobuf::Map& JobLockedInfo::remote_user_xattrs() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_map:flex.JobLockedInfo.remote_user_xattrs) + return _internal_remote_user_xattrs(); +} +inline ::google::protobuf::Map* JobLockedInfo::_internal_mutable_remote_user_xattrs() { + ::google::protobuf::internal::TSanWrite(&_impl_); + return _impl_.remote_user_xattrs_.MutableMap(); +} +inline ::google::protobuf::Map* JobLockedInfo::mutable_remote_user_xattrs() ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_mutable_map:flex.JobLockedInfo.remote_user_xattrs) + return _internal_mutable_remote_user_xattrs(); +} + +// ------------------------------------------------------------------- + // ------------------------------------------------------------------- // JobRequestCfg @@ -8488,6 +8827,62 @@ inline void JobRequestCfg::_internal_set_update(bool value) { _impl_.update_ = value; } +// optional bool enable_xattr = 12; +inline bool JobRequestCfg::has_enable_xattr() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline void JobRequestCfg::clear_enable_xattr() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = false; + _impl_._has_bits_[0] &= ~0x00000004u; +} +inline bool JobRequestCfg::enable_xattr() const { + // @@protoc_insertion_point(field_get:flex.JobRequestCfg.enable_xattr) + return _internal_enable_xattr(); +} +inline void JobRequestCfg::set_enable_xattr(bool value) { + _internal_set_enable_xattr(value); + _impl_._has_bits_[0] |= 0x00000004u; + // @@protoc_insertion_point(field_set:flex.JobRequestCfg.enable_xattr) +} +inline bool JobRequestCfg::_internal_enable_xattr() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.enable_xattr_; +} +inline void JobRequestCfg::_internal_set_enable_xattr(bool value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = value; +} + +// map meta_tags = 13; +inline int JobRequestCfg::_internal_meta_tags_size() const { + return _internal_meta_tags().size(); +} +inline int JobRequestCfg::meta_tags_size() const { + return _internal_meta_tags_size(); +} +inline void JobRequestCfg::clear_meta_tags() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.meta_tags_.Clear(); +} +inline const ::google::protobuf::Map& JobRequestCfg::_internal_meta_tags() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.meta_tags_.GetMap(); +} +inline const ::google::protobuf::Map& JobRequestCfg::meta_tags() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_map:flex.JobRequestCfg.meta_tags) + return _internal_meta_tags(); +} +inline ::google::protobuf::Map* JobRequestCfg::_internal_mutable_meta_tags() { + ::google::protobuf::internal::TSanWrite(&_impl_); + return _impl_.meta_tags_.MutableMap(); +} +inline ::google::protobuf::Map* JobRequestCfg::mutable_meta_tags() ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_mutable_map:flex.JobRequestCfg.meta_tags) + return _internal_mutable_meta_tags(); +} + // ------------------------------------------------------------------- // WorkRequest_Segment @@ -9574,6 +9969,8 @@ inline void MockJob::set_allocated_cfg(::flex::JobRequestCfg* value) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // SyncJob // .flex.SyncJob.Operation operation = 1; @@ -9814,6 +10211,62 @@ inline void SyncJob::_internal_set_update(bool value) { _impl_.update_ = value; } +// optional bool enable_xattr = 8; +inline bool SyncJob::has_enable_xattr() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline void SyncJob::clear_enable_xattr() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = false; + _impl_._has_bits_[0] &= ~0x00000004u; +} +inline bool SyncJob::enable_xattr() const { + // @@protoc_insertion_point(field_get:flex.SyncJob.enable_xattr) + return _internal_enable_xattr(); +} +inline void SyncJob::set_enable_xattr(bool value) { + _internal_set_enable_xattr(value); + _impl_._has_bits_[0] |= 0x00000004u; + // @@protoc_insertion_point(field_set:flex.SyncJob.enable_xattr) +} +inline bool SyncJob::_internal_enable_xattr() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.enable_xattr_; +} +inline void SyncJob::_internal_set_enable_xattr(bool value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.enable_xattr_ = value; +} + +// map meta_tags = 9; +inline int SyncJob::_internal_meta_tags_size() const { + return _internal_meta_tags().size(); +} +inline int SyncJob::meta_tags_size() const { + return _internal_meta_tags_size(); +} +inline void SyncJob::clear_meta_tags() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.meta_tags_.Clear(); +} +inline const ::google::protobuf::Map& SyncJob::_internal_meta_tags() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.meta_tags_.GetMap(); +} +inline const ::google::protobuf::Map& SyncJob::meta_tags() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_map:flex.SyncJob.meta_tags) + return _internal_meta_tags(); +} +inline ::google::protobuf::Map* SyncJob::_internal_mutable_meta_tags() { + ::google::protobuf::internal::TSanWrite(&_impl_); + return _impl_.meta_tags_.MutableMap(); +} +inline ::google::protobuf::Map* SyncJob::mutable_meta_tags() ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_mutable_map:flex.SyncJob.meta_tags) + return _internal_mutable_meta_tags(); +} + // ------------------------------------------------------------------- // Work_Status diff --git a/go/beeremote/beeremote.pb.go b/go/beeremote/beeremote.pb.go index 0fa9c8e..aeb8bcd 100644 --- a/go/beeremote/beeremote.pb.go +++ b/go/beeremote/beeremote.pb.go @@ -472,6 +472,7 @@ type JobRequest struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus `protobuf:"bytes,8,opt,name=generation_status,json=generationStatus,proto3" json:"generation_status,omitempty"` Update *bool `protobuf:"varint,9,opt,name=update,proto3,oneof" json:"update,omitempty"` + EnableXattr *bool `protobuf:"varint,13,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -591,6 +592,13 @@ func (x *JobRequest) GetUpdate() bool { return false } +func (x *JobRequest) GetEnableXattr() bool { + if x != nil && x.EnableXattr != nil { + return *x.EnableXattr + } + return false +} + func (x *JobRequest) SetPath(v string) { x.Path = v } @@ -647,6 +655,10 @@ func (x *JobRequest) SetUpdate(v bool) { x.Update = &v } +func (x *JobRequest) SetEnableXattr(v bool) { + x.EnableXattr = &v +} + func (x *JobRequest) HasType() bool { if x == nil { return false @@ -692,6 +704,13 @@ func (x *JobRequest) HasUpdate() bool { return x.Update != nil } +func (x *JobRequest) HasEnableXattr() bool { + if x == nil { + return false + } + return x.EnableXattr != nil +} + func (x *JobRequest) ClearType() { x.Type = nil } @@ -722,6 +741,10 @@ func (x *JobRequest) ClearUpdate() { x.Update = nil } +func (x *JobRequest) ClearEnableXattr() { + x.EnableXattr = nil +} + const JobRequest_Type_not_set_case case_JobRequest_Type = 0 const JobRequest_Sync_case case_JobRequest_Type = 10 const JobRequest_Mock_case case_JobRequest_Type = 11 @@ -772,6 +795,7 @@ type JobRequest_builder struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus Update *bool + EnableXattr *bool } func (b0 JobRequest_builder) Build() *JobRequest { @@ -795,6 +819,7 @@ func (b0 JobRequest_builder) Build() *JobRequest { x.StubLocal = b.StubLocal x.GenerationStatus = b.GenerationStatus x.Update = b.Update + x.EnableXattr = b.EnableXattr return m0 } @@ -2683,7 +2708,7 @@ var file_beeremote_proto_rawDesc = []byte{ 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, - 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, + 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0xcd, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, @@ -2709,217 +2734,220 @@ var file_beeremote_proto_rawDesc = []byte{ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, - 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, - 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, + 0x61, 0x74, 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, + 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, + 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, - 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, - 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, - 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, - 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, - 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, + 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, + 0x53, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, + 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, + 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, + 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x02, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, - 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, - 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, - 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, - 0x6c, 0x32, 0xa8, 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, - 0x2f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, + 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, + 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, + 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x32, 0xa8, 0x04, 0x0a, 0x09, 0x42, + 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, + 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_beeremote_proto_enumTypes = make([]protoimpl.EnumInfo, 4) diff --git a/go/beeremote/beeremote_protoopaque.pb.go b/go/beeremote/beeremote_protoopaque.pb.go index 53988c2..b8752c7 100644 --- a/go/beeremote/beeremote_protoopaque.pb.go +++ b/go/beeremote/beeremote_protoopaque.pb.go @@ -454,6 +454,7 @@ type JobRequest struct { xxx_hidden_StubLocal bool `protobuf:"varint,7,opt,name=stub_local,json=stubLocal,proto3" json:"stub_local,omitempty"` xxx_hidden_GenerationStatus *JobRequest_GenerationStatus `protobuf:"bytes,8,opt,name=generation_status,json=generationStatus,proto3" json:"generation_status,omitempty"` xxx_hidden_Update bool `protobuf:"varint,9,opt,name=update,proto3,oneof" json:"update,omitempty"` + xxx_hidden_EnableXattr bool `protobuf:"varint,13,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -568,6 +569,13 @@ func (x *JobRequest) GetUpdate() bool { return false } +func (x *JobRequest) GetEnableXattr() bool { + if x != nil { + return x.xxx_hidden_EnableXattr + } + return false +} + func (x *JobRequest) SetPath(v string) { x.xxx_hidden_Path = v } @@ -622,7 +630,12 @@ func (x *JobRequest) SetGenerationStatus(v *JobRequest_GenerationStatus) { func (x *JobRequest) SetUpdate(v bool) { x.xxx_hidden_Update = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 10) +} + +func (x *JobRequest) SetEnableXattr(v bool) { + x.xxx_hidden_EnableXattr = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 9, 10) } func (x *JobRequest) HasType() bool { @@ -670,6 +683,13 @@ func (x *JobRequest) HasUpdate() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 8) } +func (x *JobRequest) HasEnableXattr() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 9) +} + func (x *JobRequest) ClearType() { x.xxx_hidden_Type = nil } @@ -701,6 +721,11 @@ func (x *JobRequest) ClearUpdate() { x.xxx_hidden_Update = false } +func (x *JobRequest) ClearEnableXattr() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 9) + x.xxx_hidden_EnableXattr = false +} + const JobRequest_Type_not_set_case case_JobRequest_Type = 0 const JobRequest_Sync_case case_JobRequest_Type = 10 const JobRequest_Mock_case case_JobRequest_Type = 11 @@ -751,6 +776,7 @@ type JobRequest_builder struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus Update *bool + EnableXattr *bool } func (b0 JobRequest_builder) Build() *JobRequest { @@ -774,9 +800,13 @@ func (b0 JobRequest_builder) Build() *JobRequest { x.xxx_hidden_StubLocal = b.StubLocal x.xxx_hidden_GenerationStatus = b.GenerationStatus if b.Update != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 10) x.xxx_hidden_Update = *b.Update } + if b.EnableXattr != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 9, 10) + x.xxx_hidden_EnableXattr = *b.EnableXattr + } return m0 } @@ -2635,7 +2665,7 @@ var file_beeremote_proto_rawDesc = []byte{ 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, - 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, + 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0xcd, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, @@ -2661,217 +2691,220 @@ var file_beeremote_proto_rawDesc = []byte{ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, - 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, - 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, + 0x61, 0x74, 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x69, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, + 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, + 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, - 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, - 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, - 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, - 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, - 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, + 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, + 0x53, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, + 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, + 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, + 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x02, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, - 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, - 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, - 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, - 0x6c, 0x32, 0xa8, 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, - 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, - 0x2f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, + 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, + 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, + 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x32, 0xa8, 0x04, 0x0a, 0x09, 0x42, + 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, + 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_beeremote_proto_enumTypes = make([]protoimpl.EnumInfo, 4) diff --git a/go/flex/flex.pb.go b/go/flex/flex.pb.go index b83b9d0..b572669 100644 --- a/go/flex/flex.pb.go +++ b/go/flex/flex.pb.go @@ -958,11 +958,13 @@ type JobLockedInfo struct { // Last beegfs_mtime of the remote file or object. RemoteMtime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=remote_mtime,json=remoteMtime,proto3" json:"remote_mtime,omitempty"` // If stub_url is not empty then path is for a stub file with the provided rst url. - StubUrlRstId uint32 `protobuf:"varint,8,opt,name=stub_url_rst_id,json=stubUrlRstId,proto3" json:"stub_url_rst_id,omitempty"` - StubUrlPath string `protobuf:"bytes,9,opt,name=stub_url_path,json=stubUrlPath,proto3" json:"stub_url_path,omitempty"` - ExternalId string `protobuf:"bytes,10,opt,name=externalId,proto3" json:"externalId,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + StubUrlRstId uint32 `protobuf:"varint,8,opt,name=stub_url_rst_id,json=stubUrlRstId,proto3" json:"stub_url_rst_id,omitempty"` + StubUrlPath string `protobuf:"bytes,9,opt,name=stub_url_path,json=stubUrlPath,proto3" json:"stub_url_path,omitempty"` + ExternalId string `protobuf:"bytes,10,opt,name=externalId,proto3" json:"externalId,omitempty"` + UserXattrs map[string]string `protobuf:"bytes,11,rep,name=user_xattrs,json=userXattrs,proto3" json:"user_xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + RemoteUserXattrs map[string]string `protobuf:"bytes,12,rep,name=remote_user_xattrs,json=remoteUserXattrs,proto3" json:"remote_user_xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *JobLockedInfo) Reset() { @@ -1060,6 +1062,20 @@ func (x *JobLockedInfo) GetExternalId() string { return "" } +func (x *JobLockedInfo) GetUserXattrs() map[string]string { + if x != nil { + return x.UserXattrs + } + return nil +} + +func (x *JobLockedInfo) GetRemoteUserXattrs() map[string]string { + if x != nil { + return x.RemoteUserXattrs + } + return nil +} + func (x *JobLockedInfo) SetReadWriteLocked(v bool) { x.ReadWriteLocked = v } @@ -1100,6 +1116,14 @@ func (x *JobLockedInfo) SetExternalId(v string) { x.ExternalId = v } +func (x *JobLockedInfo) SetUserXattrs(v map[string]string) { + x.UserXattrs = v +} + +func (x *JobLockedInfo) SetRemoteUserXattrs(v map[string]string) { + x.RemoteUserXattrs = v +} + func (x *JobLockedInfo) HasMtime() bool { if x == nil { return false @@ -1140,9 +1164,11 @@ type JobLockedInfo_builder struct { // Last beegfs_mtime of the remote file or object. RemoteMtime *timestamppb.Timestamp // If stub_url is not empty then path is for a stub file with the provided rst url. - StubUrlRstId uint32 - StubUrlPath string - ExternalId string + StubUrlRstId uint32 + StubUrlPath string + ExternalId string + UserXattrs map[string]string + RemoteUserXattrs map[string]string } func (b0 JobLockedInfo_builder) Build() *JobLockedInfo { @@ -1159,6 +1185,8 @@ func (b0 JobLockedInfo_builder) Build() *JobLockedInfo { x.StubUrlRstId = b.StubUrlRstId x.StubUrlPath = b.StubUrlPath x.ExternalId = b.ExternalId + x.UserXattrs = b.UserXattrs + x.RemoteUserXattrs = b.RemoteUserXattrs return m0 } @@ -1174,6 +1202,8 @@ type JobRequestCfg struct { Force bool `protobuf:"varint,8,opt,name=force,proto3" json:"force,omitempty"` LockedInfo *JobLockedInfo `protobuf:"bytes,9,opt,name=locked_info,json=lockedInfo,proto3" json:"locked_info,omitempty"` Update *bool `protobuf:"varint,10,opt,name=update,proto3,oneof" json:"update,omitempty"` + EnableXattr *bool `protobuf:"varint,12,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` + MetaTags map[string]string `protobuf:"bytes,13,rep,name=meta_tags,json=metaTags,proto3" json:"meta_tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1273,6 +1303,20 @@ func (x *JobRequestCfg) GetUpdate() bool { return false } +func (x *JobRequestCfg) GetEnableXattr() bool { + if x != nil && x.EnableXattr != nil { + return *x.EnableXattr + } + return false +} + +func (x *JobRequestCfg) GetMetaTags() map[string]string { + if x != nil { + return x.MetaTags + } + return nil +} + func (x *JobRequestCfg) SetRemoteStorageTarget(v uint32) { x.RemoteStorageTarget = v } @@ -1313,6 +1357,14 @@ func (x *JobRequestCfg) SetUpdate(v bool) { x.Update = &v } +func (x *JobRequestCfg) SetEnableXattr(v bool) { + x.EnableXattr = &v +} + +func (x *JobRequestCfg) SetMetaTags(v map[string]string) { + x.MetaTags = v +} + func (x *JobRequestCfg) HasLockedInfo() bool { if x == nil { return false @@ -1327,6 +1379,13 @@ func (x *JobRequestCfg) HasUpdate() bool { return x.Update != nil } +func (x *JobRequestCfg) HasEnableXattr() bool { + if x == nil { + return false + } + return x.EnableXattr != nil +} + func (x *JobRequestCfg) ClearLockedInfo() { x.LockedInfo = nil } @@ -1335,6 +1394,10 @@ func (x *JobRequestCfg) ClearUpdate() { x.Update = nil } +func (x *JobRequestCfg) ClearEnableXattr() { + x.EnableXattr = nil +} + type JobRequestCfg_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1348,6 +1411,8 @@ type JobRequestCfg_builder struct { Force bool LockedInfo *JobLockedInfo Update *bool + EnableXattr *bool + MetaTags map[string]string } func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { @@ -1364,6 +1429,8 @@ func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { x.Force = b.Force x.LockedInfo = b.LockedInfo x.Update = b.Update + x.EnableXattr = b.EnableXattr + x.MetaTags = b.MetaTags return m0 } @@ -1946,9 +2013,11 @@ type SyncJob struct { RemotePath string `protobuf:"bytes,3,opt,name=remote_path,json=remotePath,proto3" json:"remote_path,omitempty"` // By default the remote directory structure will be preserved on downloads unless flatten is // set. If the flag is set then the directory delimiter will be replaced with an underscore. - Flatten bool `protobuf:"varint,5,opt,name=flatten,proto3" json:"flatten,omitempty"` - LockedInfo *JobLockedInfo `protobuf:"bytes,6,opt,name=locked_info,json=lockedInfo,proto3" json:"locked_info,omitempty"` - Update *bool `protobuf:"varint,7,opt,name=update,proto3,oneof" json:"update,omitempty"` + Flatten bool `protobuf:"varint,5,opt,name=flatten,proto3" json:"flatten,omitempty"` + LockedInfo *JobLockedInfo `protobuf:"bytes,6,opt,name=locked_info,json=lockedInfo,proto3" json:"locked_info,omitempty"` + Update *bool `protobuf:"varint,7,opt,name=update,proto3,oneof" json:"update,omitempty"` + EnableXattr *bool `protobuf:"varint,8,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` + MetaTags map[string]string `protobuf:"bytes,9,rep,name=meta_tags,json=metaTags,proto3" json:"meta_tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2020,6 +2089,20 @@ func (x *SyncJob) GetUpdate() bool { return false } +func (x *SyncJob) GetEnableXattr() bool { + if x != nil && x.EnableXattr != nil { + return *x.EnableXattr + } + return false +} + +func (x *SyncJob) GetMetaTags() map[string]string { + if x != nil { + return x.MetaTags + } + return nil +} + func (x *SyncJob) SetOperation(v SyncJob_Operation) { x.Operation = v } @@ -2044,6 +2127,14 @@ func (x *SyncJob) SetUpdate(v bool) { x.Update = &v } +func (x *SyncJob) SetEnableXattr(v bool) { + x.EnableXattr = &v +} + +func (x *SyncJob) SetMetaTags(v map[string]string) { + x.MetaTags = v +} + func (x *SyncJob) HasLockedInfo() bool { if x == nil { return false @@ -2058,6 +2149,13 @@ func (x *SyncJob) HasUpdate() bool { return x.Update != nil } +func (x *SyncJob) HasEnableXattr() bool { + if x == nil { + return false + } + return x.EnableXattr != nil +} + func (x *SyncJob) ClearLockedInfo() { x.LockedInfo = nil } @@ -2066,6 +2164,10 @@ func (x *SyncJob) ClearUpdate() { x.Update = nil } +func (x *SyncJob) ClearEnableXattr() { + x.EnableXattr = nil +} + type SyncJob_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -2081,9 +2183,11 @@ type SyncJob_builder struct { RemotePath string // By default the remote directory structure will be preserved on downloads unless flatten is // set. If the flag is set then the directory delimiter will be replaced with an underscore. - Flatten bool - LockedInfo *JobLockedInfo - Update *bool + Flatten bool + LockedInfo *JobLockedInfo + Update *bool + EnableXattr *bool + MetaTags map[string]string } func (b0 SyncJob_builder) Build() *SyncJob { @@ -2096,6 +2200,8 @@ func (b0 SyncJob_builder) Build() *SyncJob { x.Flatten = b.Flatten x.LockedInfo = b.LockedInfo x.Update = b.Update + x.EnableXattr = b.EnableXattr + x.MetaTags = b.MetaTags return m0 } @@ -2971,7 +3077,7 @@ type WorkRequest_Segment struct { func (x *WorkRequest_Segment) Reset() { *x = WorkRequest_Segment{} - mi := &file_flex_proto_msgTypes[20] + mi := &file_flex_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2983,7 +3089,7 @@ func (x *WorkRequest_Segment) String() string { func (*WorkRequest_Segment) ProtoMessage() {} func (x *WorkRequest_Segment) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[20] + mi := &file_flex_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3072,7 +3178,7 @@ type Work_Status struct { func (x *Work_Status) Reset() { *x = Work_Status{} - mi := &file_flex_proto_msgTypes[21] + mi := &file_flex_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3084,7 +3190,7 @@ func (x *Work_Status) String() string { func (*Work_Status) ProtoMessage() {} func (x *Work_Status) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[21] + mi := &file_flex_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3158,7 +3264,7 @@ type Work_Part struct { func (x *Work_Part) Reset() { *x = Work_Part{} - mi := &file_flex_proto_msgTypes[22] + mi := &file_flex_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3170,7 +3276,7 @@ func (x *Work_Part) String() string { func (*Work_Part) ProtoMessage() {} func (x *Work_Part) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[22] + mi := &file_flex_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3289,7 +3395,7 @@ type RemoteStorageTarget_Policies struct { func (x *RemoteStorageTarget_Policies) Reset() { *x = RemoteStorageTarget_Policies{} - mi := &file_flex_proto_msgTypes[23] + mi := &file_flex_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3301,7 +3407,7 @@ func (x *RemoteStorageTarget_Policies) String() string { func (*RemoteStorageTarget_Policies) ProtoMessage() {} func (x *RemoteStorageTarget_Policies) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[23] + mi := &file_flex_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3370,7 +3476,7 @@ type RemoteStorageTarget_S3 struct { func (x *RemoteStorageTarget_S3) Reset() { *x = RemoteStorageTarget_S3{} - mi := &file_flex_proto_msgTypes[24] + mi := &file_flex_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3382,7 +3488,7 @@ func (x *RemoteStorageTarget_S3) String() string { func (*RemoteStorageTarget_S3) ProtoMessage() {} func (x *RemoteStorageTarget_S3) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[24] + mi := &file_flex_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3502,7 +3608,7 @@ type RemoteStorageTarget_Azure struct { func (x *RemoteStorageTarget_Azure) Reset() { *x = RemoteStorageTarget_Azure{} - mi := &file_flex_proto_msgTypes[25] + mi := &file_flex_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3514,7 +3620,7 @@ func (x *RemoteStorageTarget_Azure) String() string { func (*RemoteStorageTarget_Azure) ProtoMessage() {} func (x *RemoteStorageTarget_Azure) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[25] + mi := &file_flex_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3583,7 +3689,7 @@ type RemoteStorageTarget_POSIX struct { func (x *RemoteStorageTarget_POSIX) Reset() { *x = RemoteStorageTarget_POSIX{} - mi := &file_flex_proto_msgTypes[26] + mi := &file_flex_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3595,7 +3701,7 @@ func (x *RemoteStorageTarget_POSIX) String() string { func (*RemoteStorageTarget_POSIX) ProtoMessage() {} func (x *RemoteStorageTarget_POSIX) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[26] + mi := &file_flex_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3689,7 +3795,7 @@ var file_flex_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf8, 0x02, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9b, 0x05, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, @@ -3713,250 +3819,291 @@ var file_flex_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x75, 0x62, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0xdc, 0x02, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, - 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x22, 0x90, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x78, 0x61, 0x74, 0x74, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x12, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, + 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, + 0x61, 0x74, 0x74, 0x72, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, + 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, + 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, + 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, 0x61, 0x74, 0x74, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x54, + 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0x90, 0x04, 0x0a, 0x0b, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x23, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, + 0x6d, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, + 0x62, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, + 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x74, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, + 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, + 0x74, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, + 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, + 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, + 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, + 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, + 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, - 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, - 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, - 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, - 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, - 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, - 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xaf, - 0x02, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, 0x36, 0x0a, - 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, - 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, - 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, - 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, - 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, - 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, - 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, - 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, - 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, - 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, - 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, - 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, - 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, - 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, - 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, - 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, - 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, - 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, - 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, - 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, - 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, + 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, + 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xdf, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, + 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, + 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, + 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, + 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, + 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, + 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, 0x61, 0x74, 0x74, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x54, 0x61, 0x67, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, + 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, + 0x50, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, + 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, + 0x83, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, + 0x54, 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, + 0x62, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, + 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, + 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, + 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, + 0xe1, 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, + 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, + 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, + 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, + 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x3e, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x2e, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, + 0x37, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, + 0x00, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, + 0x65, 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, + 0x7a, 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, + 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, - 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, - 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, - 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, - 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, - 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, - 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, + 0x52, 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, + 0x0a, 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, - 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, - 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, - 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_flex_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 31) var file_flex_proto_goTypes = []any{ (UpdateWorkRequest_NewState)(0), // 0: flex.UpdateWorkRequest.NewState (BulkUpdateWorkRequest_NewState)(0), // 1: flex.BulkUpdateWorkRequest.NewState @@ -3983,61 +4130,69 @@ var file_flex_proto_goTypes = []any{ (*UpdateConfigResponse)(nil), // 22: flex.UpdateConfigResponse (*BeeRemoteNode)(nil), // 23: flex.BeeRemoteNode (*RemoteStorageTarget)(nil), // 24: flex.RemoteStorageTarget - (*WorkRequest_Segment)(nil), // 25: flex.WorkRequest.Segment - (*Work_Status)(nil), // 26: flex.Work.Status - (*Work_Part)(nil), // 27: flex.Work.Part - (*RemoteStorageTarget_Policies)(nil), // 28: flex.RemoteStorageTarget.Policies - (*RemoteStorageTarget_S3)(nil), // 29: flex.RemoteStorageTarget.S3 - (*RemoteStorageTarget_Azure)(nil), // 30: flex.RemoteStorageTarget.Azure - (*RemoteStorageTarget_POSIX)(nil), // 31: flex.RemoteStorageTarget.POSIX - (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp + nil, // 25: flex.JobLockedInfo.UserXattrsEntry + nil, // 26: flex.JobLockedInfo.RemoteUserXattrsEntry + nil, // 27: flex.JobRequestCfg.MetaTagsEntry + (*WorkRequest_Segment)(nil), // 28: flex.WorkRequest.Segment + nil, // 29: flex.SyncJob.MetaTagsEntry + (*Work_Status)(nil), // 30: flex.Work.Status + (*Work_Part)(nil), // 31: flex.Work.Part + (*RemoteStorageTarget_Policies)(nil), // 32: flex.RemoteStorageTarget.Policies + (*RemoteStorageTarget_S3)(nil), // 33: flex.RemoteStorageTarget.S3 + (*RemoteStorageTarget_Azure)(nil), // 34: flex.RemoteStorageTarget.Azure + (*RemoteStorageTarget_POSIX)(nil), // 35: flex.RemoteStorageTarget.POSIX + (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp } var file_flex_proto_depIdxs = []int32{ 7, // 0: flex.HeartbeatResponse.node_stats:type_name -> flex.NodeStats - 32, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp + 36, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp 16, // 2: flex.SubmitWorkRequest.request:type_name -> flex.WorkRequest 20, // 3: flex.SubmitWorkResponse.work:type_name -> flex.Work 0, // 4: flex.UpdateWorkRequest.new_state:type_name -> flex.UpdateWorkRequest.NewState 20, // 5: flex.UpdateWorkResponse.work:type_name -> flex.Work 1, // 6: flex.BulkUpdateWorkRequest.new_state:type_name -> flex.BulkUpdateWorkRequest.NewState - 32, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp - 32, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp - 14, // 9: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo - 25, // 10: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment - 18, // 11: flex.WorkRequest.mock:type_name -> flex.MockJob - 19, // 12: flex.WorkRequest.sync:type_name -> flex.SyncJob - 17, // 13: flex.WorkRequest.builder:type_name -> flex.BuilderJob - 15, // 14: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg - 14, // 15: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo - 15, // 16: flex.MockJob.cfg:type_name -> flex.JobRequestCfg - 2, // 17: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation - 14, // 18: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo - 26, // 19: flex.Work.status:type_name -> flex.Work.Status - 27, // 20: flex.Work.parts:type_name -> flex.Work.Part - 23, // 21: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode - 24, // 22: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget - 4, // 23: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result - 28, // 24: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies - 29, // 25: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 - 31, // 26: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX - 30, // 27: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure - 3, // 28: flex.Work.Status.state:type_name -> flex.Work.State - 29, // 29: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 - 21, // 30: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest - 5, // 31: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest - 8, // 32: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest - 10, // 33: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest - 12, // 34: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest - 22, // 35: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse - 6, // 36: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse - 9, // 37: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse - 11, // 38: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse - 13, // 39: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse - 35, // [35:40] is the sub-list for method output_type - 30, // [30:35] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name + 36, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp + 36, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp + 25, // 9: flex.JobLockedInfo.user_xattrs:type_name -> flex.JobLockedInfo.UserXattrsEntry + 26, // 10: flex.JobLockedInfo.remote_user_xattrs:type_name -> flex.JobLockedInfo.RemoteUserXattrsEntry + 14, // 11: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo + 27, // 12: flex.JobRequestCfg.meta_tags:type_name -> flex.JobRequestCfg.MetaTagsEntry + 28, // 13: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment + 18, // 14: flex.WorkRequest.mock:type_name -> flex.MockJob + 19, // 15: flex.WorkRequest.sync:type_name -> flex.SyncJob + 17, // 16: flex.WorkRequest.builder:type_name -> flex.BuilderJob + 15, // 17: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg + 14, // 18: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo + 15, // 19: flex.MockJob.cfg:type_name -> flex.JobRequestCfg + 2, // 20: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation + 14, // 21: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo + 29, // 22: flex.SyncJob.meta_tags:type_name -> flex.SyncJob.MetaTagsEntry + 30, // 23: flex.Work.status:type_name -> flex.Work.Status + 31, // 24: flex.Work.parts:type_name -> flex.Work.Part + 23, // 25: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode + 24, // 26: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget + 4, // 27: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result + 32, // 28: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies + 33, // 29: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 + 35, // 30: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX + 34, // 31: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure + 3, // 32: flex.Work.Status.state:type_name -> flex.Work.State + 33, // 33: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 + 21, // 34: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest + 5, // 35: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest + 8, // 36: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest + 10, // 37: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest + 12, // 38: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest + 22, // 39: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse + 6, // 40: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse + 9, // 41: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse + 11, // 42: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse + 13, // 43: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse + 39, // [39:44] is the sub-list for method output_type + 34, // [34:39] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_flex_proto_init() } @@ -4064,7 +4219,7 @@ func file_flex_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flex_proto_rawDesc, NumEnums: 5, - NumMessages: 27, + NumMessages: 31, NumExtensions: 0, NumServices: 1, }, diff --git a/go/flex/flex_protoopaque.pb.go b/go/flex/flex_protoopaque.pb.go index 901a7f6..36819ea 100644 --- a/go/flex/flex_protoopaque.pb.go +++ b/go/flex/flex_protoopaque.pb.go @@ -942,19 +942,21 @@ func (b0 BulkUpdateWorkResponse_builder) Build() *BulkUpdateWorkResponse { // file. This will be produced by sync's job builder but can be produced anywhere it makes sense such as // in ctl. type JobLockedInfo struct { - state protoimpl.MessageState `protogen:"opaque.v1"` - xxx_hidden_ReadWriteLocked bool `protobuf:"varint,1,opt,name=read_write_locked,json=readWriteLocked,proto3" json:"read_write_locked,omitempty"` - xxx_hidden_Exists bool `protobuf:"varint,2,opt,name=exists,proto3" json:"exists,omitempty"` - xxx_hidden_Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - xxx_hidden_Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"` - xxx_hidden_Mtime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=mtime,proto3" json:"mtime,omitempty"` - xxx_hidden_RemoteSize int64 `protobuf:"varint,6,opt,name=remote_size,json=remoteSize,proto3" json:"remote_size,omitempty"` - xxx_hidden_RemoteMtime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=remote_mtime,json=remoteMtime,proto3" json:"remote_mtime,omitempty"` - xxx_hidden_StubUrlRstId uint32 `protobuf:"varint,8,opt,name=stub_url_rst_id,json=stubUrlRstId,proto3" json:"stub_url_rst_id,omitempty"` - xxx_hidden_StubUrlPath string `protobuf:"bytes,9,opt,name=stub_url_path,json=stubUrlPath,proto3" json:"stub_url_path,omitempty"` - xxx_hidden_ExternalId string `protobuf:"bytes,10,opt,name=externalId,proto3" json:"externalId,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"opaque.v1"` + xxx_hidden_ReadWriteLocked bool `protobuf:"varint,1,opt,name=read_write_locked,json=readWriteLocked,proto3" json:"read_write_locked,omitempty"` + xxx_hidden_Exists bool `protobuf:"varint,2,opt,name=exists,proto3" json:"exists,omitempty"` + xxx_hidden_Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + xxx_hidden_Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"` + xxx_hidden_Mtime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=mtime,proto3" json:"mtime,omitempty"` + xxx_hidden_RemoteSize int64 `protobuf:"varint,6,opt,name=remote_size,json=remoteSize,proto3" json:"remote_size,omitempty"` + xxx_hidden_RemoteMtime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=remote_mtime,json=remoteMtime,proto3" json:"remote_mtime,omitempty"` + xxx_hidden_StubUrlRstId uint32 `protobuf:"varint,8,opt,name=stub_url_rst_id,json=stubUrlRstId,proto3" json:"stub_url_rst_id,omitempty"` + xxx_hidden_StubUrlPath string `protobuf:"bytes,9,opt,name=stub_url_path,json=stubUrlPath,proto3" json:"stub_url_path,omitempty"` + xxx_hidden_ExternalId string `protobuf:"bytes,10,opt,name=externalId,proto3" json:"externalId,omitempty"` + xxx_hidden_UserXattrs map[string]string `protobuf:"bytes,11,rep,name=user_xattrs,json=userXattrs,proto3" json:"user_xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + xxx_hidden_RemoteUserXattrs map[string]string `protobuf:"bytes,12,rep,name=remote_user_xattrs,json=remoteUserXattrs,proto3" json:"remote_user_xattrs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *JobLockedInfo) Reset() { @@ -1052,6 +1054,20 @@ func (x *JobLockedInfo) GetExternalId() string { return "" } +func (x *JobLockedInfo) GetUserXattrs() map[string]string { + if x != nil { + return x.xxx_hidden_UserXattrs + } + return nil +} + +func (x *JobLockedInfo) GetRemoteUserXattrs() map[string]string { + if x != nil { + return x.xxx_hidden_RemoteUserXattrs + } + return nil +} + func (x *JobLockedInfo) SetReadWriteLocked(v bool) { x.xxx_hidden_ReadWriteLocked = v } @@ -1092,6 +1108,14 @@ func (x *JobLockedInfo) SetExternalId(v string) { x.xxx_hidden_ExternalId = v } +func (x *JobLockedInfo) SetUserXattrs(v map[string]string) { + x.xxx_hidden_UserXattrs = v +} + +func (x *JobLockedInfo) SetRemoteUserXattrs(v map[string]string) { + x.xxx_hidden_RemoteUserXattrs = v +} + func (x *JobLockedInfo) HasMtime() bool { if x == nil { return false @@ -1132,9 +1156,11 @@ type JobLockedInfo_builder struct { // Last beegfs_mtime of the remote file or object. RemoteMtime *timestamppb.Timestamp // If stub_url is not empty then path is for a stub file with the provided rst url. - StubUrlRstId uint32 - StubUrlPath string - ExternalId string + StubUrlRstId uint32 + StubUrlPath string + ExternalId string + UserXattrs map[string]string + RemoteUserXattrs map[string]string } func (b0 JobLockedInfo_builder) Build() *JobLockedInfo { @@ -1151,6 +1177,8 @@ func (b0 JobLockedInfo_builder) Build() *JobLockedInfo { x.xxx_hidden_StubUrlRstId = b.StubUrlRstId x.xxx_hidden_StubUrlPath = b.StubUrlPath x.xxx_hidden_ExternalId = b.ExternalId + x.xxx_hidden_UserXattrs = b.UserXattrs + x.xxx_hidden_RemoteUserXattrs = b.RemoteUserXattrs return m0 } @@ -1166,6 +1194,8 @@ type JobRequestCfg struct { xxx_hidden_Force bool `protobuf:"varint,8,opt,name=force,proto3" json:"force,omitempty"` xxx_hidden_LockedInfo *JobLockedInfo `protobuf:"bytes,9,opt,name=locked_info,json=lockedInfo,proto3" json:"locked_info,omitempty"` xxx_hidden_Update bool `protobuf:"varint,10,opt,name=update,proto3,oneof" json:"update,omitempty"` + xxx_hidden_EnableXattr bool `protobuf:"varint,12,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` + xxx_hidden_MetaTags map[string]string `protobuf:"bytes,13,rep,name=meta_tags,json=metaTags,proto3" json:"meta_tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -1267,6 +1297,20 @@ func (x *JobRequestCfg) GetUpdate() bool { return false } +func (x *JobRequestCfg) GetEnableXattr() bool { + if x != nil { + return x.xxx_hidden_EnableXattr + } + return false +} + +func (x *JobRequestCfg) GetMetaTags() map[string]string { + if x != nil { + return x.xxx_hidden_MetaTags + } + return nil +} + func (x *JobRequestCfg) SetRemoteStorageTarget(v uint32) { x.xxx_hidden_RemoteStorageTarget = v } @@ -1305,7 +1349,16 @@ func (x *JobRequestCfg) SetLockedInfo(v *JobLockedInfo) { func (x *JobRequestCfg) SetUpdate(v bool) { x.xxx_hidden_Update = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 9, 10) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 9, 12) +} + +func (x *JobRequestCfg) SetEnableXattr(v bool) { + x.xxx_hidden_EnableXattr = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 10, 12) +} + +func (x *JobRequestCfg) SetMetaTags(v map[string]string) { + x.xxx_hidden_MetaTags = v } func (x *JobRequestCfg) HasLockedInfo() bool { @@ -1322,6 +1375,13 @@ func (x *JobRequestCfg) HasUpdate() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 9) } +func (x *JobRequestCfg) HasEnableXattr() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 10) +} + func (x *JobRequestCfg) ClearLockedInfo() { x.xxx_hidden_LockedInfo = nil } @@ -1331,6 +1391,11 @@ func (x *JobRequestCfg) ClearUpdate() { x.xxx_hidden_Update = false } +func (x *JobRequestCfg) ClearEnableXattr() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 10) + x.xxx_hidden_EnableXattr = false +} + type JobRequestCfg_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1344,6 +1409,8 @@ type JobRequestCfg_builder struct { Force bool LockedInfo *JobLockedInfo Update *bool + EnableXattr *bool + MetaTags map[string]string } func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { @@ -1360,9 +1427,14 @@ func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { x.xxx_hidden_Force = b.Force x.xxx_hidden_LockedInfo = b.LockedInfo if b.Update != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 9, 10) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 9, 12) x.xxx_hidden_Update = *b.Update } + if b.EnableXattr != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 10, 12) + x.xxx_hidden_EnableXattr = *b.EnableXattr + } + x.xxx_hidden_MetaTags = b.MetaTags return m0 } @@ -1924,6 +1996,8 @@ type SyncJob struct { xxx_hidden_Flatten bool `protobuf:"varint,5,opt,name=flatten,proto3" json:"flatten,omitempty"` xxx_hidden_LockedInfo *JobLockedInfo `protobuf:"bytes,6,opt,name=locked_info,json=lockedInfo,proto3" json:"locked_info,omitempty"` xxx_hidden_Update bool `protobuf:"varint,7,opt,name=update,proto3,oneof" json:"update,omitempty"` + xxx_hidden_EnableXattr bool `protobuf:"varint,8,opt,name=enable_xattr,json=enableXattr,proto3,oneof" json:"enable_xattr,omitempty"` + xxx_hidden_MetaTags map[string]string `protobuf:"bytes,9,rep,name=meta_tags,json=metaTags,proto3" json:"meta_tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -1997,6 +2071,20 @@ func (x *SyncJob) GetUpdate() bool { return false } +func (x *SyncJob) GetEnableXattr() bool { + if x != nil { + return x.xxx_hidden_EnableXattr + } + return false +} + +func (x *SyncJob) GetMetaTags() map[string]string { + if x != nil { + return x.xxx_hidden_MetaTags + } + return nil +} + func (x *SyncJob) SetOperation(v SyncJob_Operation) { x.xxx_hidden_Operation = v } @@ -2019,7 +2107,16 @@ func (x *SyncJob) SetLockedInfo(v *JobLockedInfo) { func (x *SyncJob) SetUpdate(v bool) { x.xxx_hidden_Update = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 5, 6) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 5, 8) +} + +func (x *SyncJob) SetEnableXattr(v bool) { + x.xxx_hidden_EnableXattr = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 6, 8) +} + +func (x *SyncJob) SetMetaTags(v map[string]string) { + x.xxx_hidden_MetaTags = v } func (x *SyncJob) HasLockedInfo() bool { @@ -2036,6 +2133,13 @@ func (x *SyncJob) HasUpdate() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 5) } +func (x *SyncJob) HasEnableXattr() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 6) +} + func (x *SyncJob) ClearLockedInfo() { x.xxx_hidden_LockedInfo = nil } @@ -2045,6 +2149,11 @@ func (x *SyncJob) ClearUpdate() { x.xxx_hidden_Update = false } +func (x *SyncJob) ClearEnableXattr() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 6) + x.xxx_hidden_EnableXattr = false +} + type SyncJob_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -2060,9 +2169,11 @@ type SyncJob_builder struct { RemotePath string // By default the remote directory structure will be preserved on downloads unless flatten is // set. If the flag is set then the directory delimiter will be replaced with an underscore. - Flatten bool - LockedInfo *JobLockedInfo - Update *bool + Flatten bool + LockedInfo *JobLockedInfo + Update *bool + EnableXattr *bool + MetaTags map[string]string } func (b0 SyncJob_builder) Build() *SyncJob { @@ -2075,9 +2186,14 @@ func (b0 SyncJob_builder) Build() *SyncJob { x.xxx_hidden_Flatten = b.Flatten x.xxx_hidden_LockedInfo = b.LockedInfo if b.Update != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 6) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 5, 8) x.xxx_hidden_Update = *b.Update } + if b.EnableXattr != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 6, 8) + x.xxx_hidden_EnableXattr = *b.EnableXattr + } + x.xxx_hidden_MetaTags = b.MetaTags return m0 } @@ -2917,7 +3033,7 @@ type WorkRequest_Segment struct { func (x *WorkRequest_Segment) Reset() { *x = WorkRequest_Segment{} - mi := &file_flex_proto_msgTypes[20] + mi := &file_flex_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2929,7 +3045,7 @@ func (x *WorkRequest_Segment) String() string { func (*WorkRequest_Segment) ProtoMessage() {} func (x *WorkRequest_Segment) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[20] + mi := &file_flex_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3017,7 +3133,7 @@ type Work_Status struct { func (x *Work_Status) Reset() { *x = Work_Status{} - mi := &file_flex_proto_msgTypes[21] + mi := &file_flex_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3029,7 +3145,7 @@ func (x *Work_Status) String() string { func (*Work_Status) ProtoMessage() {} func (x *Work_Status) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[21] + mi := &file_flex_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3098,7 +3214,7 @@ type Work_Part struct { func (x *Work_Part) Reset() { *x = Work_Part{} - mi := &file_flex_proto_msgTypes[22] + mi := &file_flex_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3110,7 +3226,7 @@ func (x *Work_Part) String() string { func (*Work_Part) ProtoMessage() {} func (x *Work_Part) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[22] + mi := &file_flex_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3225,7 +3341,7 @@ type RemoteStorageTarget_Policies struct { func (x *RemoteStorageTarget_Policies) Reset() { *x = RemoteStorageTarget_Policies{} - mi := &file_flex_proto_msgTypes[23] + mi := &file_flex_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3237,7 +3353,7 @@ func (x *RemoteStorageTarget_Policies) String() string { func (*RemoteStorageTarget_Policies) ProtoMessage() {} func (x *RemoteStorageTarget_Policies) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[23] + mi := &file_flex_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3297,7 +3413,7 @@ type RemoteStorageTarget_S3 struct { func (x *RemoteStorageTarget_S3) Reset() { *x = RemoteStorageTarget_S3{} - mi := &file_flex_proto_msgTypes[24] + mi := &file_flex_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3309,7 +3425,7 @@ func (x *RemoteStorageTarget_S3) String() string { func (*RemoteStorageTarget_S3) ProtoMessage() {} func (x *RemoteStorageTarget_S3) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[24] + mi := &file_flex_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3429,7 +3545,7 @@ type RemoteStorageTarget_Azure struct { func (x *RemoteStorageTarget_Azure) Reset() { *x = RemoteStorageTarget_Azure{} - mi := &file_flex_proto_msgTypes[25] + mi := &file_flex_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3441,7 +3557,7 @@ func (x *RemoteStorageTarget_Azure) String() string { func (*RemoteStorageTarget_Azure) ProtoMessage() {} func (x *RemoteStorageTarget_Azure) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[25] + mi := &file_flex_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3510,7 +3626,7 @@ type RemoteStorageTarget_POSIX struct { func (x *RemoteStorageTarget_POSIX) Reset() { *x = RemoteStorageTarget_POSIX{} - mi := &file_flex_proto_msgTypes[26] + mi := &file_flex_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3522,7 +3638,7 @@ func (x *RemoteStorageTarget_POSIX) String() string { func (*RemoteStorageTarget_POSIX) ProtoMessage() {} func (x *RemoteStorageTarget_POSIX) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[26] + mi := &file_flex_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3616,7 +3732,7 @@ var file_flex_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf8, 0x02, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9b, 0x05, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, @@ -3640,250 +3756,291 @@ var file_flex_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x75, 0x62, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0xdc, 0x02, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, - 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x22, 0x90, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x78, 0x61, 0x74, 0x74, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x12, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, + 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x58, 0x61, 0x74, 0x74, 0x72, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x58, + 0x61, 0x74, 0x74, 0x72, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, + 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, + 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, + 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, 0x61, 0x74, 0x74, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x54, + 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0x90, 0x04, 0x0a, 0x0b, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x23, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, + 0x6d, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, + 0x62, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, + 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x74, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, + 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, + 0x74, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, + 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, + 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, + 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, + 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, + 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, - 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, - 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, - 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, - 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, - 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, - 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xaf, - 0x02, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, 0x36, 0x0a, - 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, - 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, - 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, - 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, - 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, - 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, - 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, - 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, - 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, - 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, - 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, - 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, - 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, - 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, - 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, - 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, - 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, - 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, - 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, - 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, - 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, + 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, + 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xdf, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, + 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, + 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, + 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, + 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, + 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, + 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x58, 0x61, 0x74, 0x74, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x54, 0x61, 0x67, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x78, 0x61, 0x74, 0x74, 0x72, 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, + 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, + 0x50, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, + 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, + 0x83, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, + 0x54, 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, + 0x62, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, + 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, + 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, + 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, + 0xe1, 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, + 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, + 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, + 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, + 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x3e, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x2e, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, + 0x37, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, + 0x00, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, + 0x65, 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, + 0x7a, 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, + 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, - 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, - 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, - 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, - 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, - 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, - 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, + 0x52, 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, + 0x0a, 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, - 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, - 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, - 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x18, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, + 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_flex_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 31) var file_flex_proto_goTypes = []any{ (UpdateWorkRequest_NewState)(0), // 0: flex.UpdateWorkRequest.NewState (BulkUpdateWorkRequest_NewState)(0), // 1: flex.BulkUpdateWorkRequest.NewState @@ -3910,61 +4067,69 @@ var file_flex_proto_goTypes = []any{ (*UpdateConfigResponse)(nil), // 22: flex.UpdateConfigResponse (*BeeRemoteNode)(nil), // 23: flex.BeeRemoteNode (*RemoteStorageTarget)(nil), // 24: flex.RemoteStorageTarget - (*WorkRequest_Segment)(nil), // 25: flex.WorkRequest.Segment - (*Work_Status)(nil), // 26: flex.Work.Status - (*Work_Part)(nil), // 27: flex.Work.Part - (*RemoteStorageTarget_Policies)(nil), // 28: flex.RemoteStorageTarget.Policies - (*RemoteStorageTarget_S3)(nil), // 29: flex.RemoteStorageTarget.S3 - (*RemoteStorageTarget_Azure)(nil), // 30: flex.RemoteStorageTarget.Azure - (*RemoteStorageTarget_POSIX)(nil), // 31: flex.RemoteStorageTarget.POSIX - (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp + nil, // 25: flex.JobLockedInfo.UserXattrsEntry + nil, // 26: flex.JobLockedInfo.RemoteUserXattrsEntry + nil, // 27: flex.JobRequestCfg.MetaTagsEntry + (*WorkRequest_Segment)(nil), // 28: flex.WorkRequest.Segment + nil, // 29: flex.SyncJob.MetaTagsEntry + (*Work_Status)(nil), // 30: flex.Work.Status + (*Work_Part)(nil), // 31: flex.Work.Part + (*RemoteStorageTarget_Policies)(nil), // 32: flex.RemoteStorageTarget.Policies + (*RemoteStorageTarget_S3)(nil), // 33: flex.RemoteStorageTarget.S3 + (*RemoteStorageTarget_Azure)(nil), // 34: flex.RemoteStorageTarget.Azure + (*RemoteStorageTarget_POSIX)(nil), // 35: flex.RemoteStorageTarget.POSIX + (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp } var file_flex_proto_depIdxs = []int32{ 7, // 0: flex.HeartbeatResponse.node_stats:type_name -> flex.NodeStats - 32, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp + 36, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp 16, // 2: flex.SubmitWorkRequest.request:type_name -> flex.WorkRequest 20, // 3: flex.SubmitWorkResponse.work:type_name -> flex.Work 0, // 4: flex.UpdateWorkRequest.new_state:type_name -> flex.UpdateWorkRequest.NewState 20, // 5: flex.UpdateWorkResponse.work:type_name -> flex.Work 1, // 6: flex.BulkUpdateWorkRequest.new_state:type_name -> flex.BulkUpdateWorkRequest.NewState - 32, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp - 32, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp - 14, // 9: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo - 25, // 10: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment - 18, // 11: flex.WorkRequest.mock:type_name -> flex.MockJob - 19, // 12: flex.WorkRequest.sync:type_name -> flex.SyncJob - 17, // 13: flex.WorkRequest.builder:type_name -> flex.BuilderJob - 15, // 14: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg - 14, // 15: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo - 15, // 16: flex.MockJob.cfg:type_name -> flex.JobRequestCfg - 2, // 17: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation - 14, // 18: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo - 26, // 19: flex.Work.status:type_name -> flex.Work.Status - 27, // 20: flex.Work.parts:type_name -> flex.Work.Part - 23, // 21: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode - 24, // 22: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget - 4, // 23: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result - 28, // 24: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies - 29, // 25: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 - 31, // 26: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX - 30, // 27: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure - 3, // 28: flex.Work.Status.state:type_name -> flex.Work.State - 29, // 29: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 - 21, // 30: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest - 5, // 31: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest - 8, // 32: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest - 10, // 33: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest - 12, // 34: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest - 22, // 35: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse - 6, // 36: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse - 9, // 37: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse - 11, // 38: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse - 13, // 39: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse - 35, // [35:40] is the sub-list for method output_type - 30, // [30:35] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name + 36, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp + 36, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp + 25, // 9: flex.JobLockedInfo.user_xattrs:type_name -> flex.JobLockedInfo.UserXattrsEntry + 26, // 10: flex.JobLockedInfo.remote_user_xattrs:type_name -> flex.JobLockedInfo.RemoteUserXattrsEntry + 14, // 11: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo + 27, // 12: flex.JobRequestCfg.meta_tags:type_name -> flex.JobRequestCfg.MetaTagsEntry + 28, // 13: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment + 18, // 14: flex.WorkRequest.mock:type_name -> flex.MockJob + 19, // 15: flex.WorkRequest.sync:type_name -> flex.SyncJob + 17, // 16: flex.WorkRequest.builder:type_name -> flex.BuilderJob + 15, // 17: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg + 14, // 18: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo + 15, // 19: flex.MockJob.cfg:type_name -> flex.JobRequestCfg + 2, // 20: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation + 14, // 21: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo + 29, // 22: flex.SyncJob.meta_tags:type_name -> flex.SyncJob.MetaTagsEntry + 30, // 23: flex.Work.status:type_name -> flex.Work.Status + 31, // 24: flex.Work.parts:type_name -> flex.Work.Part + 23, // 25: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode + 24, // 26: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget + 4, // 27: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result + 32, // 28: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies + 33, // 29: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 + 35, // 30: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX + 34, // 31: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure + 3, // 32: flex.Work.Status.state:type_name -> flex.Work.State + 33, // 33: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 + 21, // 34: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest + 5, // 35: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest + 8, // 36: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest + 10, // 37: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest + 12, // 38: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest + 22, // 39: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse + 6, // 40: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse + 9, // 41: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse + 11, // 42: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse + 13, // 43: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse + 39, // [39:44] is the sub-list for method output_type + 34, // [34:39] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_flex_proto_init() } @@ -3991,7 +4156,7 @@ func file_flex_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flex_proto_rawDesc, NumEnums: 5, - NumMessages: 27, + NumMessages: 31, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/beeremote.proto b/proto/beeremote.proto index cbaeec2..e67afe7 100644 --- a/proto/beeremote.proto +++ b/proto/beeremote.proto @@ -97,6 +97,7 @@ message JobRequest { string message = 2; } optional bool update = 9; + optional bool enable_xattr = 13; } // Job contains all the data from the original request plus the job ID and diff --git a/proto/flex.proto b/proto/flex.proto index 384fce9..2700fcf 100644 --- a/proto/flex.proto +++ b/proto/flex.proto @@ -104,6 +104,8 @@ message JobLockedInfo { uint32 stub_url_rst_id = 8; string stub_url_path = 9; string externalId = 10; + map user_xattrs = 11; + map remote_user_xattrs = 12; } message JobRequestCfg { @@ -117,6 +119,8 @@ message JobRequestCfg { bool force = 8; JobLockedInfo locked_info = 9; optional bool update = 10; + optional bool enable_xattr = 12; + map meta_tags = 13; } // BeeRemote assigns work for a job to one or more worker nodes. @@ -189,6 +193,8 @@ message SyncJob { bool flatten = 5; JobLockedInfo locked_info = 6; optional bool update = 7; + optional bool enable_xattr = 8; + map meta_tags = 9; } // Currently while requests types are specific to a particular worker node type, diff --git a/rust/beeremote.rs b/rust/beeremote.rs index 60a37db..abf38aa 100644 --- a/rust/beeremote.rs +++ b/rust/beeremote.rs @@ -101,6 +101,8 @@ pub struct JobRequest { pub generation_status: ::core::option::Option, #[prost(bool, optional, tag = "9")] pub update: ::core::option::Option, + #[prost(bool, optional, tag = "13")] + pub enable_xattr: ::core::option::Option, #[prost(oneof = "job_request::Type", tags = "10, 11, 12")] pub r#type: ::core::option::Option, } diff --git a/rust/flex.rs b/rust/flex.rs index a38316e..eac92fb 100644 --- a/rust/flex.rs +++ b/rust/flex.rs @@ -179,6 +179,16 @@ pub struct JobLockedInfo { pub stub_url_path: ::prost::alloc::string::String, #[prost(string, tag = "10")] pub external_id: ::prost::alloc::string::String, + #[prost(map = "string, string", tag = "11")] + pub user_xattrs: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, + #[prost(map = "string, string", tag = "12")] + pub remote_user_xattrs: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct JobRequestCfg { @@ -202,6 +212,13 @@ pub struct JobRequestCfg { pub locked_info: ::core::option::Option, #[prost(bool, optional, tag = "10")] pub update: ::core::option::Option, + #[prost(bool, optional, tag = "12")] + pub enable_xattr: ::core::option::Option, + #[prost(map = "string, string", tag = "13")] + pub meta_tags: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, } /// BeeRemote assigns work for a job to one or more worker nodes. #[derive(Clone, PartialEq, ::prost::Message)] @@ -303,6 +320,13 @@ pub struct SyncJob { pub locked_info: ::core::option::Option, #[prost(bool, optional, tag = "7")] pub update: ::core::option::Option, + #[prost(bool, optional, tag = "8")] + pub enable_xattr: ::core::option::Option, + #[prost(map = "string, string", tag = "9")] + pub meta_tags: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, } /// Nested message and enum types in `SyncJob`. pub mod sync_job {